Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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
8-59286
Дж
2002-07-31 11:37
2002.11.18
Как можно проиграть MP3 !!!


1-59263
The_Vizit0r!
2002-11-07 13:07
2002.11.18
Помогите


4-59503
AlexHEY
2002-10-09 03:22
2002.11.18
Пустая форма на WinApi?


6-59320
Рамблер
2002-09-18 15:16
2002.11.18
DCOM(COM+)


1-59206
sad
2002-11-04 09:53
2002.11.18
Печать канвы TeeChart





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский