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

Вниз

Помогите оптимизировать запрос...   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.019 c
1-59283
TankMan
2002-11-05 23:15
2002.11.18
Проблема с отображением


1-59261
Xman
2002-11-07 09:54
2002.11.18
Немогу понять может поможете


6-59299
Aralekin
2002-09-20 17:58
2002.11.18
Широковещательный пакет


1-59203
Erik
2002-11-05 18:35
2002.11.18
Работа с указателем


1-59214
Pesh
2002-11-06 14:10
2002.11.18
Формат MP3 файлов