我可以从我的查询在Excel中提供的数据中获取我想要的输出,但是能够直接在Access中执行它会很好。
我返回一张这样的表:
Date kName NumKits ActKits dName NumDoses ActDoses
---------------------------------------------------------------------
11/03/2018 AA 5 1000 BB 12 3400
12/03/2018 CC 7 1100 AA 10 4120
etc..
任何名称都可以出现在任一列中,也可能同时出现在两列中。提供的数据标准是日期范围。
我希望这些信息汇总如下:
(Sum) (Sum) (Count) (Sum) (Sum) (Count)
Name KitMade KitActivity KitSession DosesMade DoseActivity DoseSession
----------------------------------------------------------------------------
AA 26 42015 3 40 35420 4
BB (etc...)
保留日期过滤器。
我最初的想法是两次进行查询,分离出套件和剂量,然后将它们组合在一起;但我确信必须有一个更简单的方法吗?
使用Access 2016,数据已从实际信息中更改。
答案 0 :(得分:1)
你似乎想要这样的东西:
select name, sum(numkits) as numkits, sum(actkits) as actkits, sum(kitcnt) as numkits,
sum(numdoses) as numdoses, sum(actdoses) as actdoses, sum(dosecnt) as dosecnt
from (select kname as name, 1 as kitcnt, numkits, actkits, 0 as dosecnt, 0 as numdoses, 0 as actdoses
from t
union all
select kname, 0 as kitcnt, 0 as numkits, 0 as actkits, 1 as dosecnt, numdoses, actdoses
from t
) as t
group by name;
我认为某些旧版本的MS Access不支持union all
子句中的FROM
。如果这是一个问题,你可以通过创建一个视图来解决它。