【问题标题】:Access 2007 query to count different values in the same columnAccess 2007 查询以计算同一列中的不同值
【发布时间】:2017-10-05 04:25:08
【问题描述】:

我正在使用 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 列中,谢谢您的帮助。

【问题讨论】:

  • 提供示例源数据。也许 CROSSTAB 查询是合适的。
  • 您还想要按月和年分组的数据吗?

标签: sql ms-access


【解决方案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 

【讨论】:

    【解决方案2】:

    使用交叉表查询向导。

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

    【讨论】:

    • .......谢谢你的建议。我以前没有使用过交叉表查询,但我一定会尝试一下
    猜你喜欢
    • 1970-01-01
    • 2016-05-14
    • 1970-01-01
    • 1970-01-01
    • 2022-10-08
    • 1970-01-01
    • 1970-01-01
    • 2010-11-27
    • 1970-01-01
    相关资源
    最近更新 更多