【问题标题】:MS Access Crosstab query - sum of columns reported by monthMS Access 交叉表查询 - 按月报告的列总和
【发布时间】:2013-01-10 15:37:09
【问题描述】:

我正在整理一个交叉表,我想要一个按月分组的多列值(所有数字)的报告。这是我使用的 SQL。我知道这不会带来预期的结果。每个“timex”列都有不同的数字。我想要一个返回按月分组的列的总和的查询。

TRANSFORM Sum(tblTimeTracking.time1+ tblTimeTracking.time2+ tblTimeTracking.time3+ tblTimeTracking.time4+ tblTimeTracking.time5+ tblTimeTracking.time6+ tblTimeTracking.time7+ tblTimeTracking.time8+ tblTimeTracking.time9+ tblTimeTracking.time10+ tblTimeTracking.time11+ tblTimeTracking.time12+ tblTimeTracking.time13+ tblTimeTracking.time14+ tblTimeTracking.time15+ tblTimeTracking.time16+ tblTimeTracking.time17+ tblTimeTracking.time18+ tblTimeTracking.time19+ tblTimeTracking.time20+ tblTimeTracking.time21+ tblTimeTracking.time22 ) AS Total SELECT tbl_vlookup.Manager AS Manager FROM tbl_vlookup INNER JOIN tblTimeTracking ON tbl_vlookup.[Associate Name] = tblTimeTracking.Associate GROUP BY tbl_vlookup.Manager PIVOT Format([Day],"yyyy-mm");

Associate    Day          Time 1    Time 2  Time 3  Time 4  Time 5  Time 6  Time 7   
John Smith  12/1/9999       1         0       0      5.5      1      0.25   0.25

【问题讨论】:

  • 你是说你有一个有 22 个时间列的表吗?如果是,为什么?您需要使用 UNION 查询将其展平。
  • 我愿意。它们都是独一无二的。它是一个劳动力跟踪器。时间 1 是休息时间,时间 2 = 归档,等等...我想找到按月排序的所有列的总数
  • 请发布示例数据。
  • 添加了示例数据。有多个同事和很多条目。 @Remou

标签: ms-access crosstab


【解决方案1】:

类似这样的:

TRANSFORM Sum(q.Time1) AS SumOfTime1
SELECT q.Associate, q.Day
FROM (SELECT t.Associate, t.Day, t.Time1,"Time1" As TimeType
FROM tbl t
UNION ALL
SELECT t.Associate, t.Day, t.Time2,"Time2" As TimeType
FROM tbl t
UNION ALL
SELECT t.Associate, t.Day, t.Time3,"Time3" As TimeType
FROM tbl t)  AS q
GROUP BY q.Associate, q.Day
PIVOT q.TimeType;

正如我所提到的,你需要把桌子弄平。它似乎只是不同类型的数据:)

【讨论】:

    猜你喜欢
    • 2019-04-11
    • 2015-12-28
    • 2010-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-12
    • 2022-01-03
    相关资源
    最近更新 更多