Вопрос

Я хотел бы сделать следующее:

ВЫБЕРИТЕ сумму (max(поле-10 000,0)) из ТАБЛИЦЫ

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

есть какие-нибудь предложения?

Карл

Это было полезно?

Решение

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
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top