2个X轴行,1个Y轴列和2个Z轴值数据透视表SQL Server 2008查询

时间:2016-06-11 09:09:36

标签: sql sql-server sql-server-2008

我有一个SQL Server数据库表,如下所示 -

id | consignee | shipper | lss | cm1 | month
1  | hnm       | A       | 101 | 25  | Jan
2  | hnm       | B       | 102 | 35  | Jan
3  | hnm       | A       | 103 | 45  | Feb

我希望得到如下的输出 -

consignee | shipper | Jan       | Feb      |
                    | cm1 | lss | cm1 | lss|
hnm       | A       | 25  | 1   | 45  | 1  |
hnm       | B       | 35  | 1   | 0   | 0  |

此处COUNT函数应用于lss并应用于cm1上的SUM。我甚至不知道这是否可能在SQL Server查询中。从我通过搜索看到的是人们将行转换为列或1个X轴,1个Y轴和1个Z轴查询,但没有这样的。我可以使用pivot轻松地在Excel上执行此操作,但我需要从此格式的数据库中获取此数据并导出到Excel文件。

注意:我正在使用ASP .NET应用程序,我正在使用C#和OleDB。

1 个答案:

答案 0 :(得分:1)

是肯定的。有可能的。

SELECT  consignee , shipper ,
        jan_cm1 = MAX (CASE WHEN month = 'Jan' THEN cm1 END),
        jan_lss = MAX (CASE WHEN month = 'Jan' THEN lss END),
        feb_cm1 = MAX (CASE WHEN month = 'Feb' THEN cm1 END),
        feb_lss = MAX (CASE WHEN month = 'Feb' THEN lss END)
FROM    yourtable
GROUP BY consignee , shipper