powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Помогите написать запрос для отчета
7 сообщений из 7, страница 1 из 1
Помогите написать запрос для отчета
    #40060003
olga.a
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.
Помогите пожалуйста написать запрос для отчета.
Есть таблица "Расход материала"(tblExpenses) и таблица "Поступление материала"(tblArrivals), в обеих есть поля "Код материала"(MaterialID), "Количество"(Quantity) и "Дата"(Date). Нужен отчет по расходу за период в котором должны быть поля "Код материала", "Расход (кол-во)" и "Остаток (кол-во)". Не понимаю как вывести остаток на конец периода с учетом всех ранее поступивших материалов.
Заранее благодарю!
...
Рейтинг: 0 / 0
Помогите написать запрос для отчета
    #40060034
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да не должно быть в БД двух таблиц с одинаковыми полями т.к
-получите предпосылки для возникновения ошибок(если не применить специальных мер для их исключения)
-вполне достаточно одной таблицы с полями [поступление],[расход]+материал,дата
-и никаких вычисляемых (остаток) полей в таблице (им место в запросах). Остаток=Sum(поступило)-Sum(расход) если [дата]<даты на которую Вы хотите узнать остаток
-о создании БД по учету материалов в интернете воз и маленькая тележка
...
Рейтинг: 0 / 0
Помогите написать запрос для отчета
    #40060075
Geizer1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Выложите примерчик. Вам в этом примерчике запрос и сделают. А так только общие пожелания будут)
...
Рейтинг: 0 / 0
Помогите написать запрос для отчета
    #40060080
olga.a, сначала создайте запрос вида:
Код: sql
1.
2.
3.
4.
5.
Select [код товара], Sum(Iif(Дата<[ДатаНач], [Количество], 0)) As [ПриходДо], 
Sum(Iif(Дата>=[ДатаНач], [Количество], 0)) As [ПриходЗа]
From [Приход] 
Where Дата<=[ДатаКон]
GroupBy [код товара] 

затем подобный запрос на таблице Расход, а затем запрос на этих двух запросах, связанных по коду товара, где можно получить входящий/исходящий остаток и оборот.
В дальнейшем всю эту халабуду можно создать в одном запросе с двумя подзапросами.
...
Рейтинг: 0 / 0
Помогите написать запрос для отчета
    #40062522
Игорь1973
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Поле "Остаток", наверное, должно быть Нарастающим итогом?
Иногда делают таблицу Касса с полями Дата, Операция, Приход, Расход, Остаток.
Где последнее поле "Остаток" - нарастающий итог.
...
Рейтинг: 0 / 0
Помогите написать запрос для отчета
    #40062538
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игорь1973
....Где последнее поле "Остаток" - нарастающий итог.
Не учитесь плохому-лучше прочтите это
...
Рейтинг: 0 / 0
Помогите написать запрос для отчета
    #40062564
Фотография Tarasios
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
olga.a,
пожалуй, вам надо предварительно структуру базы продумать и изменить, тогда эту и возможные последующие хотелки легко будет реализовать.
На двух таблицах всё это организовать можно, но будет слишком много избыточной инфы и, соответственно, "извращений".
Например такой вариант:
Одну таблицу сделайте для справочника материалов, где код материала - уникальное значение (тип поля счётчик). Скажем, tblMaterial.
Приход: две таблицы. Одну, скажем, tblPrixodGlav под "шапку", где указываются номер вашей приходной накладной, дата приёмки, по необходимости - поля с указанием поставщика, номером накладной поставщика, датой накладной поставщика и т.д. И подчинённую таблицу tblPrixodPodch к этой "шапке", связь один-ко-многим, с обеспечением целостности. Где указывается номер накладной (по нему связь с tblPrixodGlav), код материала, количество, цена. Остальная инфа по материалу в форме для визуализации подтягивается из tblMaterial.
По аналогии делаете две таблицы для расхода.
И уже тогда легко и непринуждённо вы всегда сможете вывести остатки на любую дату.
Это если очень в примитиве.
Если вы не храните данные, скажем, на начало дня или периода в отдельной таблице, то остатки на начало периода (это конкретная дата) вычисляются как сумма количества материалов по приходу по выбранную дату минус один день (по факту это будут остатки на "вчерашний вечер", они же "остатки на утро сегодняшнего дня", "сегодняшним днём" считать указанную вами дату, на которую формируются остатки) отнять весь расход по выбранную дату минус один день.
Если вы используете промежуточные таблицы - то остатки составят остатки в промежуточной таблице плюс сумма всего прихода с даты формирования данных в промежуточной таблице остатков по выбранную дату минус один день отнять сумму всех расходов
с даты формирования остатков в промежуточной таблице по выбранную дату минус один день.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Помогите написать запрос для отчета
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]