与上月相比,我试图在本月下单(创建)的订单数量上升或下降。(T-SQL)上涨或下跌增长
它应该是这样的:
SELECT [o].ClientID
,[ru].UnitName
,YEAR(GETDATE()) AS [Current Year]
,[Current Month] =
CASE
WHEN MONTH(GETDATE()) = 1 THEN 'JANUARY'
WHEN MONTH(GETDATE()) = 2 THEN 'FEBRUARY'
WHEN MONTH(GETDATE()) = 3 THEN 'MARCH'
WHEN MONTH(GETDATE()) = 4 THEN 'APRIL'
WHEN MONTH(GETDATE()) = 5 THEN 'MAY'
WHEN MONTH(GETDATE()) = 6 THEN 'JUNE'
WHEN MONTH(GETDATE()) = 7 THEN 'JULY'
WHEN MONTH(GETDATE()) = 8 THEN 'AUGUST'
WHEN MONTH(GETDATE()) = 9 THEN 'SEPTEMBER'
WHEN MONTH(GETDATE()) = 10 THEN 'OCTOBER'
WHEN MONTH(GETDATE()) = 11 THEN 'NOVEMBER'
WHEN MONTH(GETDATE()) = 12 THEN 'DECEMBER'
ELSE NULL
END
,COUNT([o].OrderID) AS [Current Month Orders Placed]
,[Prior Month] =
CASE
WHEN DATEPART(m, DATEADD(m, - 1, getdate())) = 1 THEN 'JANUARY'
WHEN DATEPART(m, DATEADD(m, - 1, getdate())) = 2 THEN 'FEBRUARY'
WHEN DATEPART(m, DATEADD(m, - 1, getdate())) = 3 THEN 'MARCH'
WHEN DATEPART(m, DATEADD(m, - 1, getdate())) = 4 THEN 'APRIL'
WHEN DATEPART(m, DATEADD(m, - 1, getdate())) = 5 THEN 'MAY'
WHEN DATEPART(m, DATEADD(m, - 1, getdate())) = 6 THEN 'JUNE'
WHEN DATEPART(m, DATEADD(m, - 1, getdate())) = 7 THEN 'JULY'
WHEN DATEPART(m, DATEADD(m, - 1, getdate())) = 8 THEN 'AUGUST'
WHEN DATEPART(m, DATEADD(m, - 1, getdate())) = 9 THEN 'SEPTEMBER'
WHEN DATEPART(m, DATEADD(m, - 1, getdate())) = 10 THEN 'OCTOBER'
WHEN DATEPART(m, DATEADD(m, - 1, getdate())) = 11 THEN 'NOVEMBER'
WHEN DATEPART(m, DATEADD(m, - 1, getdate())) = 12 THEN 'DECEMBER'
ELSE NULL
END
,COUNT([o].OrderID) AS [Prior Months Orders Placed]
,[Current Month Orders Placed] * [ Prior Months Orders Placed] AS [Comparison Percentage]
FROM Valuations.dbo.[Order] [o](NOLOCK)
INNER JOIN Valuations.dbo.resnet_unit ru(NOLOCK) ON [o].ClientID = ru.UnitId
WHERE YEAR([o].DateCreated) = YEAR(GETDATE())
AND MONTH([o].DateCreated) = MONTH(GETDATE())
GROUP BY MONTH([o].DateCreated)
,[o].ClientID
,[ru].UnitName
SQL Server 2008或2012的版本? –
自己动手尝试选择DateName(MM,GetDate()) –
服务器版本是2008. – IeeTeY