访问2007查询以计算同一列中的不同值

时间:2017-10-04 20:05:06

标签: sql ms-access

我正在使用Access 2007. column1中的值是(第1周,第2周,第3周),而column2是成本中心(01,03,05,12) ,24等)。我尝试创建一个查询,计算每个成本中心的column1的所有实例,并在3个不同的列中显示结果。例如:

Cost Center      Week1     Week2    Week3
01             15       25        3
03              8        10       12
05             200       11       55

看起来它应该太难但我无法让它发挥作用。这是仅在我计算特定周数时才有效的代码

SELECT Mid([TransTable]![LGCY_IORG_ID],1,2) AS Expr1, 
       Count(TransTable.Week) AS CountOfWeek
FROM TransTable
WHERE (((TransTable.Week)="Week 1"))
GROUP BY Mid([TransTable]![LGCY_IORG_ID],1,2);

我希望将第1周放在一栏中,将第2周放在另一栏中,将第3周放在第3栏,感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

SELECT column2 As CostCenter, 
IIF(column1 = 'Week 1' , column2 , 0) As Week1,
IIF(column1 = 'Week 2' , column2 , 0) As Week2,
IFF(column1 = 'Week 3' , column2 , 0) As Week3 
FROM TransTable
GROUP BY column2 

答案 1 :(得分:1)

使用交叉表查询向导。

行标题将是成本中心列。 列标题是具有周描述的列。 值将是周计数。