Тут у знакомого возник один вопрос по delphi + Interbase, я, к сожалению в этом профан, поэтому решил тут спросить.
Допустим, есть две таблицы:
таблица ордеров (Ordera)
I_Ord - код ордера
Dat - дата
VdOr - 'P' - приходный ордер, 'R' - расходный ордер
таблица товаров (Tovars)
I_Tov - код товара
I_Ord - код ордера
Kvo - количество
Одной записи в Ordera может соответствовать несколько в Tovars (связь по I_Ord). Задача получить остаток товара.
Следующий запрос дает список всего товара, причем кол-во товара по приходным ордерам идет со знаком '+', а по расходным ордерам -со знаком '-':
SELECT OD.I_TOV, TV.KVOT
FROM PRORDS OD, PRTOVS TV
WHERE OD.I_OR=TV.I_OR AND OD.VDOR="P"
UNION
SELECT OD.I_TOV, -1*TV.KVOT
FROM PRORDS OD, PRTOVS TV, MATCEN MC
WHERE OD.I_OR=TV.I_OR AND OD.VDOR="R"
Теперь хорошо бы просуммировать эти данные, сгруппировав по коду товара (I_Tov), но как обратиться к результату этого запроса в Delphi?
Должно быть что-то типа:
SELECT I_Tov, SUM(KvoT) AS KvoT
FROM
GROUP BY I_Tov
Может можно получить результат одним SQL-запросом?
Или есть какой-нибудь другой вариант?
Допустим, есть две таблицы:
таблица ордеров (Ordera)
I_Ord - код ордера
Dat - дата
VdOr - 'P' - приходный ордер, 'R' - расходный ордер
таблица товаров (Tovars)
I_Tov - код товара
I_Ord - код ордера
Kvo - количество
Одной записи в Ordera может соответствовать несколько в Tovars (связь по I_Ord). Задача получить остаток товара.
Следующий запрос дает список всего товара, причем кол-во товара по приходным ордерам идет со знаком '+', а по расходным ордерам -со знаком '-':
SELECT OD.I_TOV, TV.KVOT
FROM PRORDS OD, PRTOVS TV
WHERE OD.I_OR=TV.I_OR AND OD.VDOR="P"
UNION
SELECT OD.I_TOV, -1*TV.KVOT
FROM PRORDS OD, PRTOVS TV, MATCEN MC
WHERE OD.I_OR=TV.I_OR AND OD.VDOR="R"
Теперь хорошо бы просуммировать эти данные, сгруппировав по коду товара (I_Tov), но как обратиться к результату этого запроса в Delphi?
Должно быть что-то типа:
SELECT I_Tov, SUM(KvoT) AS KvoT
FROM
GROUP BY I_Tov
Может можно получить результат одним SQL-запросом?
Или есть какой-нибудь другой вариант?