Topic: SQL-запрос

Здравствуйте! Прошу помощи по SQL-запросу, а точнее нужно правильно сформулировать условие
SELECT id FROM Zamovlennya
http://picua.org/img/2018-03/31/2osjzi8yse4ropf0el84vyqjz.jpg
WHERE:
1. zamovlvudano=1
2. klientborg=0
3. klientborg=1, если при zamovlvudano=1 сумма koshtusyma >= zamovlvartist (тоесть сумма платежей клиента больше или равна стоимости выданных ему заказов).
Таблица Klient соединена по JOINу, а вот как быть с Koshtu...

Re: SQL-запрос

Приветствую.



SELECT Zamovlennya.id FROM Zamovlennya
LEFT OUTER JOIN Klient ON Klient.id=Zamovlennya.id_Klient
LEFT OUTER JOIN Koshtu ON Klient.id=Koshtu.id_Klient
WHERE Zamovlennya.zamovlvudano=1

SELECT Zamovlennya.id FROM Zamovlennya
LEFT OUTER JOIN Klient ON Klient.id=Zamovlennya.id_Klient
LEFT OUTER JOIN Koshtu ON Klient.id=Koshtu.id_Klient
WHERE Klient.klientborg=1

третье условие к сожалению не пойму.

Dmitry.

Re: SQL-запрос

SELECT Zamovlennya.id FROM Zamovlennya
LEFT OUTER JOIN Klient ON Klient.id=Zamovlennya.id_Klient
LEFT OUTER JOIN Koshtu ON Klient.id=Koshtu.id_Klient
WHERE
Zamovlennya.zamovlvudano=1 AND
Klient.klientborg=0 AND
(Klient.klientborg=1  если (Zamovlennya.zamovlvudano=1 AND (SUM (Koshtu.koshtusyma) >= SUM (Zamovlennya.zamovlvartist) клиента))) - как правильно записать вычисление?

Re: SQL-запрос

При использовании агрегатной функции SUM, необходимо использовать групировку и слово HAVING, но в вашем случае не ясно, по какому полю необходимо групировать, пример

SELECT Singer, SUM(Sale)
FROM Artists
GROUP BY Singer
HAVING SUM(Sale) > 2000000
Dmitry.

Re: SQL-запрос

SELECT
Zamovlennya.id 

FROM                                            
Zamovlennya

LEFT OUTER JOIN Koshtu ON Zamovlennya.id_klient = Koshtu.id_klient 
LEFT OUTER JOIN Klient ON Zamovlennya.id_klient = Klient.id

WHERE
((SELECT SUM (Zamovlennya.zamovlvartist) FROM Zamovlennya WHERE Zamovlennya.id_klient = Klient.id AND Zamovlennya.zamovldovge = 0)
+(SELECT SUM (Zamovlennya.zamovlmaket) FROM Zamovlennya WHERE Zamovlennya.id_klient = Klient.id AND Zamovlennya.zamovldovge = 0)
-(SELECT SUM (Koshtu.koshtusyma) FROM Koshtu WHERE Koshtu.id_klient = Klient.id)>0) 

GROUP BY Klient.id 

Подзапросы таки мощь)))