|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Формирование отчета остатка (Delphi XE2)
1. id (Счетчик) 2. ENTRYCODE (Текстовый) – Номенклатурный номер материала 3. Name (Текстовый) – Название материала 4. Measure (Текстовый) – Единица измерения материала. 5. Width (Текстовый) - Размер материала 6. Sort (Текстовый) – Сорт материала 7. Price (Числовой) - Цена материала 1. id (Счетчик) 2. Document (Текстовый) – Название документа 3. Date (Дата/время) – Дата введения записи об отпуске/поступлении материала на склад. 4. Good (Числовой) – ID материала который присваивается из таблицы goods. 5. Count (Числовой) - Количество поступившего/отпущенного материала 6. MovingType (Текстовый) – Определяет поступление (+) или отпуск (-) материала 7. Debet (Текстовый) - Содержит значения «Дебет» который вводится кладовщиком 8. Credit (Текстовый) – Содержит значения «Кредит» которые вводятся кладовщиком Нужно рассчитать остаток материала в любой момент и вывести отчет (отчет буду выводить с помощью FastReport) Подскажите как реализовать расчет остатка (работаю в Delphi XE2) Нужно создавать дополнительную таблицу? Ниже привел примерную форму отчета. |
#2
|
||||
|
||||
Все довольно просто (по крайней мере в субд Oracle) в общем как-то так:
vGoods - твоя таблица goods vGoodMoving - твоя таблица GoodMoving date1 - твое поле date (в оракле нельзя создать поля с именем date) Код:
SELECT m.*, g.enterycode AS Номенклатурный_номер, g.name || ' ' || g.Width || ' ' || g.sort AS Название_размер_сорт, g.price AS Цена, g.price * m.kol AS Количество FROM ( SELECT m.good, (NVL (SUM (CASE WHEN m.movingtype = '+' THEN m.COUNT END), 0) - NVL ( SUM (CASE WHEN m.movingtype = '-' THEN m.COUNT END), 0)) AS kol FROM vGoodMoving m WHERE date1 BETWEEN SYSDATE - 50 AND SYSDATE + 50 GROUP BY m.good) m LEFT JOIN vGoods g ON m.good = g.id; Последний раз редактировалось Admin, Сегодня в 10:32. |
#3
|
|||
|
|||
Ах, совсем забыл указать, что БД написана на Access
|
#4
|
|||
|
|||
Можете написать запрос для Access, в SQL пока не очень...
|