我有以下数据库表:
LNr OrderNr Ident Amount
1 128 3 123.00
2 128 14 200.00
3 1290 3 300.00
4 13400 3 637.00
我想计算
Amount
字段的总和,其中Ident
等于3,但不能同时等于14。因此,我希望数据库服务器仅返回行号3和4(其中OrderNr
= 1290和13400)。我试过了:
SELECT SUM(Amount) FROM table WHERE Ident = '3'
但这当然是行不通的,因为它还会返回第1行(我不希望这样做,因为
Ident
等于14)。我尝试了其他一些查询,但无济于事。 最佳答案
您可以添加另一个not exists
条件:
SELECT SUM(Amount)
FROM mytable x
WHERE Ident = 3 AND
NOT EXISTS (SELECT *
FROM mytable y
WHERE x.OrderNr = y.OrderNr AND y.Ident = 14)