Я не уверен, что такое имя, которое нужно дать этому условию в предложении where. Я использую Microsoft SQL Server 2008.Добавить условие в предложение where
В принципе, у меня есть таблица заказов со следующими столбцами.
MyOrderTable:
OrderAmount Paid OrderDate
100 Y 2016-08-10 21:15:52.000
120 N 2016-08-10 20:15:12.000
300 Y 2016-08-09 11:10:22.000
500 Y 2016-06-09 10:10:54.000
125 N 2016-06-09 09:15:13.000
325 N 2015-11-09 09:15:13.000
В настоящее время я следующий SQL-запрос:
SELECT DATEPART(Year, OrderDate) TheYear, DATEPART(Month, OrderDate) TheMonth,
SUM(ISNULL(OrderAmount, 0)) as SumOrderAmount
FROM MyOrderTable
WHERE YEAR(OrderDate) = 2016
GROUP BY DATEPART(Year, OrderDate), DATEPART(Month, OrderDate)
ORDER BY TheYear, TheMonth
результат, возвращаемый из приведенного выше SQL, как следующее:
TheYear TheMonth SumOrderAmount
2016 6 625
2016 8 520
Как Я также запрашиваю SumOrderAmount, где строка Paid = 'Y'? Я хочу вернуть из SQL следующие данные:
TheYear TheMonth SumOrderAmount PaidSumOrderAmount
2016 6 625 500
2016 8 520 400
Как я могу это сделать? Любая помощь приветствуется. Спасибо.
Так после того, как говорится, он не нуждается в 'ELSE 0' тоже :) – sagi
@sagi. , , Au contraire. Это необходимо для предотвращения значений «NULL», когда совпадений нет, поскольку разумно предположить, что месяц не будет иметь оплаченных сумм. С другой стороны, если все платные суммы за месяц были «NULL», тогда это было бы необходимо и для общего. Это представляется маловероятным с учетом предоставленных данных. –
Если у OP есть месяцы без платных продаж, это, вероятно, большая проблема, чем значение NULL вместо 0. – jarlh