У меня есть таблица с указанной ниже схемой:Как использовать ISNULL или COALESCE функции при использовании PIVOT в MS SQL
InvoiceID int PK,
Date datetime,
Amount Money
теперь я создать таблицу, которая содержит год, месяц и Сумму из таблицы выше.
Year | Month | Amount
2014 | Dec | 10
Я затем поворачивайте эту таблицу все месяцы
select * from (select year(Date) as InvoiceYear, isnull(left(datename(month, date),3),0) as InvoiceMonth, Amount from Invoice) as Sid pivot (sum(Amount) for InvoiceMonth in (jan,feb,mar,apr,may,jun,jul,aug,sep,oct,nov,dec)) as P1
У меня есть проблема в том, что мне нужно установить месяцы, которые не имеют каких-либо сумм к нулю, а не нулевой
Какие РСУБД? Большинство из них имеют функцию NVL для преобразования NULL в заданное значение. –
@ Mr.Llama: Я использую MS SQL 2008 – Sid
Вы ищете SUM (ISNULL (Amount, 0)) – Jt2ouan