2010-07-06 4 views

ответ

1

Вы имеете в виду это?

SELECT SUM(cost) as total FROM sales where (passport = $myPassport AND paid <> 1) 
+0

* за исключением *, где платный = 1 ... – CJM

+1

Да да, уже исправил ... Дай мне шанс вместо downvoting меня :( :) – Trefex

0
SELECT SUM(cost) as total FROM sales where passport = "12345" and paid <> 1 
0
SELECT SUM(cost) as total 
FROM sales 
WHERE passport = 12345 
AND paid <> 1 
1

Просто

SELECT SUM(cost) as total 
FROM sales 
WHERE passport = ? 
AND paid <> 1 

Вы также можете искать в группе здесь

SELECT passport, SUM(cost) as total 
FROM sales 
WHERE passport = ? 
AND paid <> 1 
GROUP BY passport 
0

вы имели в виду, чтобы получить только всего, что равно 1?

ПРИМЕНЕНИЕ: HAVING total = 1

0

Иногда полезно использовать IF заявления типа, что:

SELECT COUNT(mct.id), SUM(mct.cost * IF(mct.status = 1, 0, 1)) 
FROM my_cool_table mct; 

Таким образом, когда поле состояния равно 1 стоимость умножается на 0 и исключается из суммы, но строка не будет исключить функцию count.

Другим способом является использование select внутри SUM, но это будет не очень полезно.

Смежные вопросы