-2

可能重复:
如何在 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# 中使用 LINQ 查询以下列格式显示它

 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

我试过这个查询:

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)
              };

提前致谢。

4

1 回答 1

0

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

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

于 2012-07-30T11:32:53.050 回答