Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.04.17;
Скачать: CL | DM;

Вниз

Как обойтись одним запросом   Найти похожие ветки 

 
TohaNik ©   (2003-04-01 12:04) [0]

Доврый день.
Подскажите как это решается.

По первому запросу получаем сумму заказанного по сонтракту(CTRID)

select
SUM(POSITIONS.POS_WEIGHT*POSITIONS.POS_PRICE)AS SUM_CONTRACT,
CONTRACTS.CTRID

FROM POSITIONS, ORDERS, CONTRACTS

WHERE (POSITIONS.ORDID = ORDERS.ORDID) AND
(ORDERS.CTRID = CONTRACTS.CTRID)

GROUP BY CONTRACTS.CTRID

По второму запросу получаем сумму проплат по контракту(CTRID)

select INCOMES.CTRID, SUM(INCOMES.INSUM) AS SUM_CONTRACT

from INCOMES

GROUP BY INCOMES.CTRID

Как получить результат где CTRID будет соотв-ть сумма заказанного и сумма проплаченного.


 
Соловьев ©   (2003-04-01 12:08) [1]

связать INCOMES и CONTRACTS через JOIN


 
TohaNik ©   (2003-04-01 16:17) [2]

Спасибо.
Решил при помощи лукапов в FastRep, но всетаки интересно:
после

select
sum(POSITIONS.POS_WEIGHT*POSITIONS.POS_PRICE) as SUM_CONTRACT,
CONTRACTS.CTRID,
INCOMES.CTRID, SUM(INCOMES.INSUM) AS SUM_CONTRACT

FROM POSITIONS, ORDERS, CONTRACTS LEFT JOIN INCOMES
ON CONTRACTS.CTRID = INCOMES.CTRID

WHERE (POSITIONS.ORDID = ORDERS.ORDID) AND
(ORDERS.CTRID = CONTRACTS.CTRID)

как группировать-
если
GROUP BY CONTRACTS.CTRID, INCOMES.CTRID

то сумы по контрактам(CONTRACTS.CTRID) верные, а сумы по проплатам(INCOMES.CTRID) увеличиваются соответственно количеству
позиций (POSITIONS.ORDID) всех заказов(ORDERS.CTRID) группируемого(CONTRACTS.CTRID)
Ну если по контракту был заказ с тремя позициями на сумму 50 000
и была проплата на 10 000, а получаем 30 000.
В принципе понятно почему, но как обойти.





Страницы: 1 вся ветка

Текущий архив: 2003.04.17;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.012 c
4-54965
Sentinel
2003-02-15 21:54
2003.04.17
SetClassLong


14-54864
Delirium^.Tremens
2003-04-01 10:34
2003.04.17
Паника в Белом Доме


3-54414
SZap
2003-04-01 15:01
2003.04.17
Поиск по базе...


1-54638
Serj
2003-04-04 12:47
2003.04.17
Обработка нажатия клавиши в ComboBox


4-54957
Alexander
2003-02-19 11:44
2003.04.17
Написал процедуру чтения вывода консольного приложения: