如何计算sql server 2008中的平均每月消费销售额

时间:2014-09-16 06:49:13

标签: sql-server-2008 pivot

如何计算 sql server 2008

中的平均每月消费销售量
SELECT * FROM (SELECT year(OrderDate) as [year],left(datename(month,OrderDate),3)as [month],Qty as QTY FROM DailyDispatch where CustID=1 ) as s PIVOT ( SUM(QTY)FOR [month] IN (jan, feb, mar, apr,may, jun, jul, aug, sep, oct, nov, dec))as P

我得到的结果,但我想做所有月份的总和并将其除以当月。 例如,截至今年9月的所有销售总额为1000,所以我想要1000/9并显示结果。

1 个答案:

答案 0 :(得分:0)

您没有提及您的数据,但您可以从我理解的内容中做到以下几点:

-- Declare Table Varibale
DECLARE @DailyDispatch TABLE (OrderDate DATETIME, Qty INT, CustID INT)

-- Insert some test records
INSERT INTO @DailyDispatch VALUES (GETDATE()+ 90, 12000, 1),(GETDATE()+60, 11000, 1), (GETDATE()+30, 10000, 1), (GETDATE(), 9000, 1)
                                    ,(GETDATE()-30, 8000, 1), (GETDATE()-60, 7000, 1), (GETDATE()-90, 6000, 1),(GETDATE()-120, 5000, 1)
                                    ,(GETDATE()-150, 4000, 1), (GETDATE()-180, 3000, 1), (GETDATE()-210, 2000, 1),(GETDATE()-240, 1000, 1)

-- Finally, the SQL:
SELECT *
FROM (
    SELECT year(OrderDate) AS [year]
        ,left(datename(month, OrderDate), 3) AS [month]
        ,Qty / DATEPART(m, OrderDate) AS QTY
    FROM @DailyDispatch
    WHERE CustID = 1
    ) AS s
PIVOT(SUM(Qty) FOR [month] IN (
            jan
            ,feb
            ,mar
            ,apr
            ,may
            ,jun
            ,jul
            ,aug
            ,sep
            ,oct
            ,nov
            ,dec
            )) AS P

如果您在问题中包含了一些测试数据(例如,在表格变量的帮助下),那么其他人可以回答您的问题,因此其他人不必花时间在数据集上来帮助您出。希望这会有所帮助。