如何为两列制作两种数据透视格式

时间:2019-06-22 10:52:51

标签: sql vb.net ms-access

我有这样的桌子

id | name  | date 1     | amount 1| date 2     | amount 2
---------------------------------------------------
1  | xxxx  | 01-02-2019 | 2000    | 02-04-2019 | 3500
2  | yyyy  | 01-04-2019 | 5000    | 01-06-2019 | 6800

我只能对一列进行数据透视,我使用此代码

TRANSFORM Sum(tbl1.[amount1]) AS SumOfamount1
SELECT tbl1.[fname], Sum(tbl1.[amount1]) AS [Total Of amount1]
FROM tbl1
GROUP BY tbl1.[fname]
PIVOT Format([date1],"mmm") In 
("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec");

日期1和金额1的此代码正确 可以同时为date2和金额2设置吗?

1 个答案:

答案 0 :(得分:1)

尝试使用子查询:

TRANSFORM Sum(t.[amont1]) AS SumOfamont1
SELECT t.[fname],
       Sum(t.[amount1]) AS [Total Of amount1]
FROM (SELECT date1, amont1, fname
      FROM tbl1
      UNION ALL
      SELECT date2, amont2, fname
      FROM tbl1
     ) t      
GROUP BY t.[fname]
PIVOT Format([date1], "mmm") In ("Jan", "Feb", "Mar", "Apr", "May","Jun", "Jul", "Aug","Sep", "Oct", "Nov", "Dec");

如果这不起作用,则可能需要使用union all的视图。