访问SQL汇总数据

时间:2018-03-12 11:50:40

标签: sql ms-access summary jet summarization

我可以从我的查询在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,数据已从实际信息中更改。

1 个答案:

答案 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。如果这是一个问题,你可以通过创建一个视图来解决它。