|
16 Кб. |
|
| День добрый! Никак не могу решить следующую задачу. Есть таблица движения товаров(см. рисунок). Клиент может взять товар в долг (статус товара Кредит) или сразу оплатить его (статус товара Реализация). Взятый клиентом товар в Кредит может быть Реализован или же Возвращен (статус товара Возврат).
Необходимо узнать сколько у клиента открытых Кредитов на текущую дату (то есть не реализованных и не возвращенных). | |
|
| |
|
|
|
| запрос с групиировкой по Клиент, Статус, Товар, Размер - Количество в сумму, Дату в условие
SELECT Таблица1.Клиент, Таблица1.Статус, Таблица1.Товар, Таблица1.Размер, Sum(Таблица1.Кол_во) AS [Sum-Кол_во]
FROM Таблица1
WHERE (((Таблица1.Дата)<=#1/1/2009#))
GROUP BY Таблица1.Клиент, Таблица1.Статус, Таблица1.Товар, Таблица1.Размер; | |
|
| |
|
|
|
| Спасибо большое! Сейчас пробую разобраться | |
|
| |
|
12 Кб. |
|
| Спасибо еще раз! Запрос работает (приложил файл).
А возможно сделать чтобы он выводил конкретно те товары которые в долгу(т.е. Кредитные остатки с учетом Реализованных и Возвращенных)? | |
|
| |
|
|
|
| времени мало - вот запрос, скопируй и вставь!!!!
но сталкиваясь с такими вещами могу сказать так просто оборотку не сделаешь. всегда потребуется период С и По, т.е. предварительно вычислить что получил-вернул-реализовал Клиент до даты начала периода - получим отсаток на начало + получил-вернул-реализовал - в течении периода (оборот). елси не сделаем остаток на начало получи обороты за период больше выданного!!! и при росте базы это вызывает увеличение времени обработки.
SELECT Таблица1.Клиент, Таблица1.Товар, Таблица1.Размер, Sum(IIf([статус]="Кредит",[Кол_во],0)) AS Кредит, Sum(IIf([статус]="Реализация",[Кол_во],0)) AS Реализация, Sum(IIf([статус]="Возврат",[Кол_во],0)) AS Возврат, Sum(IIf([статус]="Кредит",[Кол_во],0)-IIf([статус]="Реализация",[Кол_во],0)-IIf([статус]="Возврат",[Кол_во],0)) AS Остаток
FROM Таблица1
WHERE (((Таблица1.Дата)<=#12/1/2009#))
GROUP BY Таблица1.Клиент, Таблица1.Товар, Таблица1.Размер
HAVING (((Sum(IIf([статус]="Кредит",[Кол_во],0)-IIf([статус]="Реализация",[Кол_во],0)-IIf([статус]="Возврат",[Кол_во],0)))>0));
п.с. табла "Товары" - это для примера, если нет то надо табла Клиент, Товар (Номенклатура), Вид_Операции, которые связаны с Таблой "Товары" | |
|
| |
|
|
|
| Спасибо преогромнейшее! Да я понимаю что если будет очень много данных, то на выполнение запроса будет потрачено много времени. Буду думать как реализовать в будущем периоды. Еще раз Спасибо | |
|
| |