【发布时间】:2016-09-01 06:25:31
【问题描述】:
我有一个查询要找出来自salesdata table 的Material wiseandMonth wise 数据
样本
我可以找到以下数据
MaterialNo Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
1 10 15 20 30 40 45 56 85 100 95 42 32
2 12 20 86 32 45 42 62 74 86 42 84 62
3 15 20 46 54 46 42 19 0 62 75 94 98
我想要 SQL SERVER 2008 R2 中的最后两列(MaxSale、MaxSaleMonth)
MaterialNo Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec MaxSale MaxSaleMonth
1 10 15 20 30 40 45 56 85 100 95 42 32 100 Sep
2 12 20 86 32 45 42 62 74 86 42 84 62 86 Mar
3 15 20 46 54 46 42 19 0 62 75 94 98 98 Dec
请给我建议最简单的解决方案。
我的当前查询如下
Select
MaterialNo,
SUM(CASE WHEN CAST(SalesData.dSalesDate AS DATE) BETWEEN '01-Jan-2015' AND '31-Jan-2015' THEN SalesData.iQty ELSE 0 END) AS [Jan],
SUM(CASE WHEN CAST(SalesData.dSalesDate AS DATE) BETWEEN '01-Feb-2015' AND '28-Feb-2015' THEN SalesData.iQty ELSE 0 END) AS [Feb],
SUM(CASE WHEN CAST(SalesData.dSalesDate AS DATE) BETWEEN '01-Mar-2015' AND '31-Mar-2015' THEN SalesData.iQty ELSE 0 END) AS [Mar],
SUM(CASE WHEN CAST(SalesData.dSalesDate AS DATE) BETWEEN '01-Apr-2015' AND '30-Apr-2015' THEN SalesData.iQty ELSE 0 END) AS [Apr]
From SalesData
Group By
MaterialNo
【问题讨论】:
-
请发布您的查询。建议:创建子查询来获取你需要的数据。
-
我发布我现有的查询
-
@Hirengardhariya 我已经更新了我的答案。首先,您必须创建一个函数,然后在您的选择查询中使用。
标签: sql sql-server sql-server-2008 sql-server-2008-r2