Я пытаюсь получить SUM из все NetAmount каждой сделки, и я попытался с помощью Pivot, чтобы показать SUM Сделки в пределах диапазона дат Квартальный.SQL Server 2008 Получение ежеквартальных данных с Pivot
DECLARE @FromDate DATETIME = '01-01-2016'
DECLARE @ToDate DATETIME = '12-31-2016'
SELECT CustomerName,
ISNULL([1],0) AS Q1,
ISNULL([2],0) AS Q2,
ISNULL([3],0) AS Q3,
ISNULL([4],0) AS Q4
FROM
(
SELECT sc.CustomerName,
SUM(si.NetAmount) AS NetAmount,
CAST('Q' + CAST(DATEPART(QUARTER, si.TransactionDate)AS VARCHAR(MAX)) AS VARCHAR(MAX)) AS Quarterly
FROM tblSampleSalesInvoices si
LEFT OUTER JOIN tblSampleCustomers sc ON sc.Id = si.CustomerId
WHERE si.TransactionDate BETWEEN @FromDate AND @ToDate
GROUP BY sc.CustomerName, si.TransactionDate
) AS BaseData
PIVOT
(
SUM(NetAmount)
FOR Quarterly IN ([1],[2],[3],[4])
)AS Pivoting
Вот содержание моих таблиц.
А вот выход:
Не ваше ежеквартальное identifers выглядеть 'Q1' не' 1'? Запустите внутренний выбор самостоятельно и проверьте. –
Также вам, вероятно, не следует группировать 'si.TransactionDate', но вместо этого группировать по полному выражению четверти - снова запустите внутренний select, чтобы наблюдать это. –