powered by simpleCommunicator - 2.0.54     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Помогите написать запрос на вывод остатков
25 сообщений из 32, страница 1 из 2
Помогите написать запрос на вывод остатков
    #38305213
Abrochka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет.
Пожалуйста, помогите сделать запрос на суммарный остаток товара на выбранном складе в указанную дату.
Есть три таблицы:
1. номер акта, дата, ид сотрудника, тип операции (приход/расход), номер склада
2. номер акта, ид продукта, единицы изм., количество, цена за шт.
3. ид продукта, название продукта, ед. изм.
Проблема в том, что есть приход и расход, которые указываются в одной таблице по учету актов.
Я что-то вообще не могу придумать, как должен писаться запрос, чтобы учесть для выбранного товара и приход, и расход.
Подскажите хоть какую-то идею пожалуйста
...
Рейтинг: 0 / 0
Помогите написать запрос на вывод остатков
    #38305266
Склад
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AbrochkaПроблема в том, что есть приход и расход, которые указываются в одной таблице по учету актов.
Я что-то вообще не могу придумать, как должен писаться запрос, чтобы учесть для выбранного товара и приход, и расход.
Подскажите хоть какую-то идею пожалуйста
Это не проблема - это так правильно. Когда движение хранится в одной таблице, то умножив +1 приход -1 расход остаток получается простейшим суммированием.
...
Рейтинг: 0 / 0
Помогите написать запрос на вывод остатков
    #38305269
Safi4
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AbrochkaВсем привет.
Пожалуйста, помогите сделать запрос на суммарный остаток товара на выбранном складе в указанную дату.
Есть три таблицы:
1. номер акта, дата, ид сотрудника, тип операции (приход/расход), номер склада
2. номер акта, ид продукта, единицы изм., количество, цена за шт.
3. ид продукта, название продукта, ед. изм.
Проблема в том, что есть приход и расход, которые указываются в одной таблице по учету актов.
Я что-то вообще не могу придумать, как должен писаться запрос, чтобы учесть для выбранного товара и приход, и расход.
Подскажите хоть какую-то идею пожалуйста

0) Условные обозначения t1 - первая таблица, t2 - вторая таблица, t3 - третья таблица. Я буду исходить из того, что в конструкторе запросов можете написать хоть что-то.
1) Создаем два запроса: а) Приход товара на нужный склад (выборка из t1 и t2) - q1; б) Расход товара по нужному складу (выборка из t1 и t2) - q2
2) Создаем запрос объединения SELECT q1.Ид_Продукта, q1.Кол-во UNION SELECT q2.Ид_Продукта, -q2.Кол-во - это движение по складу (вместо q1 и q2 можно прописать сами запросы, скопировав SQL-код - тогда вместо трех запросов у вас будет один)
3) Делаем запрос с группировкой (выборка из "движения" и t3) - из таблицы t3 - берем имя, а из движения Sum([Кол-во])

Кто-то так....
...
Рейтинг: 0 / 0
Помогите написать запрос на вывод остатков
    #38305272
Safi4
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Safi40) Условные обозначения t1 - первая таблица, t2 - вторая таблица, t3 - третья таблица. Я буду исходить из того, что в конструкторе запросов можете написать хоть что-то.
1) Создаем два запроса: а) Приход товара на нужный склад (выборка из t1 и t2) - q1; б) Расход товара по нужному складу (выборка из t1 и t2) - q2
2) Создаем запрос объединения SELECT q1.Ид_Продукта, q1.Кол-во UNION SELECT q2.Ид_Продукта, -q2.Кол-во - это движение по складу (вместо q1 и q2 можно прописать сами запросы, скопировав SQL-код - тогда вместо трех запросов у вас будет один)
3) Делаем запрос с группировкой (выборка из "движения" и t3) - из таблицы t3 - берем имя, а из движения Sum([Кол-во])

Кто-то так....

Обратите внимание на минус для Кол-во в запросе q2
...
Рейтинг: 0 / 0
Помогите написать запрос на вывод остатков
    #38305280
Abrochka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо огромнейшее, сейчас попробую
...
Рейтинг: 0 / 0
Помогите написать запрос на вывод остатков
    #38305281
AbrochkaПроблема в том, что есть приход и расход, которые указываются в одной таблице
Какой тип поля "тип операции" и какие в нем значения? Допустим приход, это 1, тогда:
SUM(T2.[количество]*IIF(T1.[тип операции]=1, 1, -1))

Естественно отбор по [дата]<=указанная дата и номеру склада, а группировка по ид продукта

ЗЫ. Еще объясните, зачем "единицы изм" во второй таблице, если они указаны в 3-й?
...
Рейтинг: 0 / 0
Помогите написать запрос на вывод остатков
    #38305306
Abrochka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В колонке тип данных просто название операции, т.е. формат у нее текстовый, а не числовой.
Я думала создать колонку, которая бы пересчитывала значение приход - 0, расход - 1, но не знаю как :-(
На счет единиц измерения, то в задании так было указано, потому так и сделала
...
Рейтинг: 0 / 0
Помогите написать запрос на вывод остатков
    #38305674
П-Л
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Safi4Abrochkaчто есть приход и расход, которые указываются в одной таблице по учету актов.
0) Условные обозначения t1 - первая таблица, t2 - вторая таблица, t3 - третья таблица. Я буду исходить из того, что в конструкторе запросов можете написать хоть что-то.
1) Создаем два запроса: а) Приход товара на нужный склад (выборка из t1 и t2) - q1; б) Расход товара по нужному складу (выборка из t1 и t2) - q2
2) Создаем запрос объединения SELECT q1.Ид_Продукта, q1.Кол-во UNION SELECT q2.Ид_Продукта, -q2.Кол-во - это движение по складу (вместо q1 и q2 можно прописать сами запросы, скопировав SQL-код - тогда вместо трех запросов у вас будет один)
3) Делаем запрос с группировкой (выборка из "движения" и t3) - из таблицы t3 - берем имя, а из движения Sum([Кол-во])

Кто-то так....
Есть чайники полный воды. Надо вскипятить чай. Вы предлагаете сначала вылить воду, затем налить снова. Как угодно, только не так.
...
Рейтинг: 0 / 0
Помогите написать запрос на вывод остатков
    #38305684
Abrochka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Помогите пожалуйста написать правильно
...
Рейтинг: 0 / 0
Помогите написать запрос на вывод остатков
    #38306025
basil-77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Abrochka,

Как-то так...
Код: sql
1.
2.
3.
4.
5.
6.
7.
SELECT
НомерСклада, ИДПродукта, Sum(РасчетноеКоличество) AS Остаток_Кол, Sum(Сумма) AS Остаток_Сумма
FROM
(
SELECT НомерСклада, Таблица2.ИДПродукта, IIf([ТипОперации]="приход",[Количество],IIf([ТипОперации]="Расход",(-1)*[Количество],0)) AS РасчетноеКоличество, [РасчетноеКоличество]*[Цена] AS Сумма FROM Таблица1
INNER JOIN Таблица2 ON Таблица1.НомерАкта = Таблица2.НомерАкта WHERE Дата <=[РасчетнаяДата])  AS qr1
GROUP BY НомерСклада, ИДПродукта;



Отбор по складу вставьте сами
...
Рейтинг: 0 / 0
Помогите написать запрос на вывод остатков
    #38306134
Abrochka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
basil-77, спасибо.
И так не получается.
Access говорит, что слишком сложное выражение :-(
...
Рейтинг: 0 / 0
Помогите написать запрос на вывод остатков
    #38306139
Abrochka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я попробовала написать запрос, но выдает ошибку, что слишком сложное предложение.
Подскажите пожалуйста, что может быть не так
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
PARAMETERS Stock_Num Short, Date_Need Time;
SELECT [Stock_Num]=Transmit_Receive.Stock_Number, Act_Contain.ID_Product, SUM (Tot_Rem) AS Total_Remains, SUM (Tot_Cost) AS Total_Cost_Remain
FROM
(
SELECT Transmit_Receive.Stock_Number, Act_Contain.ID_Product, IIF (Transmit_Receive.Operation_Type = '0', (Act_Contain.Quantity), IIF (Transmit_Receive.Operation_Type = '1', (-1)*(Act_Contain.Quantity), 0)) AS  Tot_Rem, 
[Total_Remains]*Act_Contain.Price AS Tot_Cost
FROM Transmit_Receive INNER JOIN Act_Contain 
ON Transmit_Receive.Number=Act_Contain.Number
WHERE Transmit_Receive.Act_Date <=[Date_Need] AND
[Stock_Num]=Transmit_Receive.Stock_Number)
GROUP BY Transmit_Receive.Stock_Number, Act_Contain.ID_Product;



Прикрепляю и схему базы данных
...
Рейтинг: 0 / 0
Помогите написать запрос на вывод остатков
    #38306222
basil-77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Abrochkabasil-77, спасибо.
И так не получается.
Access говорит, что слишком сложное выражение :-(
а у меня не говорит...
...
Рейтинг: 0 / 0
Помогите написать запрос на вывод остатков
    #38306232
basil-77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Abrochkabasil-77, спасибо.
И так не получается.
Access говорит, что слишком сложное выражение :-(
...
Рейтинг: 0 / 0
Помогите написать запрос на вывод остатков
    #38306247
Abrochka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
basil-77, может, Вы знаете, в чем может быть проблема?
У меня еще просит ввести количество остатков, хотя они должны же как раз в этом запросе считаться
...
Рейтинг: 0 / 0
Помогите написать запрос на вывод остатков
    #38306266
basil-77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Abrochka,
Откройте архив и посмотрите как там
...
Рейтинг: 0 / 0
Помогите написать запрос на вывод остатков
    #38306336
Abrochka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
basil-77, я уже не знаю, что делать.
Вроде сделала все, как у Вас, но выдает ошибку.
Посмотрите пожалуйста, если можете.
...
Рейтинг: 0 / 0
Помогите написать запрос на вывод остатков
    #38306357
basil-77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Abrochka,
Ну как-то внимательнее надо быть ;)

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
PARAMETERS Stock_Num Short, Date_Need DateTime;
SELECT
qr1.ID_Product,
SUM(qr1.Tot_Rem) AS Total_Remains,
SUM(qr1.Tot_Cost) AS Total_Cost_Remain
FROM
(
 SELECT [Stock_Number],
 Act_Contain.ID_Product,
 IIf([Transmit_Receive.Operation_Type]='0',[Act_Contain.Quantity],IIf([Transmit_Receive.Operation_Type]='1',(-1)*[Act_Contain.Quantity],0)) AS Tot_Rem,
 [Tot_Rem]*[Act_Contain.Price] AS Tot_Cost FROM Transmit_Receive
 INNER JOIN Act_Contain ON Transmit_Receive.Number=Act_Contain.Number
 WHERE (Transmit_Receive.Act_Date)<=[Date_Need]
) AS qr1
GROUP BY Transmit_Receive.Stock_Number, qr1.ID_Product;
...
Рейтинг: 0 / 0
Помогите написать запрос на вывод остатков
    #38306368
basil-77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну и условие по Stock_Num добавьте
...
Рейтинг: 0 / 0
Помогите написать запрос на вывод остатков
    #38306430
Abrochka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
basil-77, я запускаю запрос в базе, которую Вы мне прислали, выдает опять ошибку.
Это кошмар какой-то
...
Рейтинг: 0 / 0
Помогите написать запрос на вывод остатков
    #38306437
basil-77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Abrochka,

Какой у вас акс?
...
Рейтинг: 0 / 0
Помогите написать запрос на вывод остатков
    #38306440
Abrochka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
basil-77, 2007
...
Рейтинг: 0 / 0
Помогите написать запрос на вывод остатков
    #38306457
basil-77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Abrochka,

2007 нет, есть только 2010; хотя не думаю, что это важно.
п.с. у вас в таблице Transmit_Receive поле Operation_Type числовое, а в запросе вы обращаетесь с ним, как с текстом. Поправьте
Код: sql
1.
IIf([Transmit_Receive.Operation_Type]='0',[Act_Contain.Quantity],IIf([Transmit_Receive.Operation_Type]='1',(-1)*[Act_Contain.Quantity],0)) AS Tot_Rem


на
Код: sql
1.
IIf([Transmit_Receive.Operation_Type]=0,[Act_Contain.Quantity],IIf([Transmit_Receive.Operation_Type]=1,(-1)*[Act_Contain.Quantity],0)) AS Tot_Rem
...
Рейтинг: 0 / 0
Помогите написать запрос на вывод остатков
    #38306490
П-Л
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И что у вас означает поле тот_кост ? Каков его финансовый смысл ?

При покупках/продажах в разное время по разным ценам вы НЕИЗБЕЖНО попадаете на ФИФО/ЛИФО/СРВЗВ. Вы об этом не задумывались ?
...
Рейтинг: 0 / 0
Помогите написать запрос на вывод остатков
    #38306498
П-Л
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Куп/ПродОстатокЦенаСуммаСумма нараст. итогомСумма НИ/Остаток1010111101101115251218029011.6-71813-9119911.05555556-81011.5-9210710.741412.7 50.8157.811.27142857
Вот так считать нельзя. Надо выделять реализованный пиэнэель от текущего остатка/себестоимости. Каким-либо методом - ФИФО/...
...
Рейтинг: 0 / 0
25 сообщений из 32, страница 1 из 2
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Помогите написать запрос на вывод остатков
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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