2012-07-30 51 views
-2

可能重复:
How to present data in different format in LINQ如何在LINQ中按月份汇总数据?

我有数据如下格式的数据表

数据如表:

DEVICEID PRODUCTCODE MONTH NO  QTY  VENDAMT 
----------- ----------- ----------- ------------------- ---- ------- 
    2032  100   06   9  270 
    2032  101   06   4  120 
    2032  102   06   1   30 
    2032  100   07   10  300 
    2032  101   07   8  240 
    2032  102   07   9  270 

我想说明它在C#

DEVICEID PRODUCTCODE JUN_QTY JUN_AMT JUL_QTY JUL_AMT 
----------- ----------- ----------- ------------------- ---- ------- 
2032   100    9 270  10  300 
2032   101    4 120  8  240 
2032   102    1 30  9  270 

使用LINQ查询以下格式我试图与此查询:

var query2 = from p in tempDt222.AsEnumerable() 
      select new { 
       DEVICEID= p.Field<Int32>("DEVICEID"), 
       PRODUCTCODE = p.Field<String>("PRODUCTCODE"), 
       JAN_QTY = (p.Field<String>("MONTH_NO") == "01" ? p.Field<Int32>("QTY") : 0), 
       JAN_AMT = (p.Field<String>("MONTH_NO") == "01" ? p.Field<Int32>("VENDAMT") : 0), 
       ... 
       DEC_AMT = (p.Field<String>("MONTH_NO") == "12" ? p.Field<Int32>("VENDAMT") : 0) 
       }; 

在此先感谢。

回答

0

您需要在您的月份没有列应用GroupBy。

然后,您需要编写一些代码来格式化输出,以便行中的月份数值显示为文本列标题。