Форум: "Базы";
Текущий архив: 2002.11.18;
Скачать: [xml.tar.bz2];
ВнизПомогите оптимизировать запрос... Найти похожие ветки
← →
Just_Dont_Know (2002-10-28 16:25) [0]Доброго всем дня! Помогите пожалуйста с запросом. Если все упростить, то получится следующая картина
Есть 2 одинаковый таблицы:
[Boly]
F_ID - не ключ
How
[Doly]
F_ID - не ключ
How
Надо получить набор данных состоящий из одного столбца:
F_ID,
в котором содержатся только те F_ID для которых разница сумм: SUM(Boly.How) - Sum (Doly.How) > 0.
Вот я сделал 4-хэтажный запрос:
SELECT S5.F_ID FROM (
SELECT S4.F_ID, SUM (s4.SUMA) AS [SUMA2] FROM (
SELECT S2.F_ID, SUM(S2.How) AS [SUMA] FROM Boly S2 GROUP BY S2.F_ID
UNION ALL ( SELECT S3.F_ID, SUM(S3.How*(-1)) AS [SUMA] FROM Doly S3 GROUP BY S3.F_ID )
) S4
GROUP BY S4.F_ID
) S5
WHERE SUMA2 > 0
А можно попроще как нибудь попроще... никак не сооброжу
← →
stone (2002-10-28 16:53) [1]Есть такое классное слово HAVING - очень подходит для составления подобных запросов. Синтаксис можно посмотреть в хэлпе
← →
MVF (2002-10-28 16:53) [2]select boly.f_id, sum(boly.how)-sum(doly.how) as summa
from boly, doly
where boly.f_id = doly.f_id
group by boly.f_id
having sum(boly.how)-sum(doly.how) > 0
Удачи!
← →
3JIA9I CyKA (2002-10-28 16:54) [3]Ку?
select
F_ID = q.D_ID
from
(select
F_ID = IsNull(B.F_ID, D.F_ID),
D_How = IsNull(D.How, 0),
B_How = IsNull(B.How)
from Boly B full join Doly D on B.F_ID = D.F_ID
) q
having sum(q.B_How - q.D_How) > 0
← →
3JIA9I CyKA (2002-10-28 16:55) [4]Sorry
select
F_ID = q.D_ID
from
(select
F_ID = IsNull(B.F_ID, D.F_ID),
D_How = IsNull(D.How, 0),
B_How = IsNull(B.How, 0)
from Boly B full join Doly D on B.F_ID = D.F_ID
) q
having sum(q.B_How - q.D_How) > 0
← →
3JIA9I CyKA (2002-10-28 16:59) [5]Sorry опять 8)
select
F_ID = q.F_ID
from
(select
F_ID = IsNull(B.F_ID, D.F_ID),
D_How = IsNull(D.How, 0),
B_How = IsNull(B.How, 0)
from Boly B full join Doly D on B.F_ID = D.F_ID
) q
group by q.F_ID
having sum(q.B_How - q.D_How) > 0
← →
Just_Dont_Know (2002-10-28 17:07) [6]Всем спасибо за предложения!
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2002.11.18;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.008 c