2009-09-10 4 views
2

Я хотел бы сделать следующее:SQL Max (что-то, 0) тип решения

SELECT SUM (макс (поле-10,000,0)) из ТАБЛИЦЫ

как, я хочу иметь поле -10,000 подытожил, но если поле 10 000 < 0, то я хочу, чтобы он добавил 0.

любые предложения?

Карл

+0

что СУБД ?! ! –

ответ

3

ANSI синтаксис (поддерживается SQL Server, Oracle, MySQL и PostgreSQL):

SELECT SUM(CASE WHEN FIELD < 10000 THEN 0 ELSE FIELD - 10000 END) 
FROM mytable 

Использование GREATEST (не поддерживается SQL Server):

SELECT SUM(GREATEST(field - 10000, 0)) 
FROM mytable