【问题标题】:Access SQL Summarize Data访问 SQL 汇总数据
【发布时间】:2018-03-12 11:50:39
【问题描述】:

我可以从我的查询在 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...)

保留日期过滤器。

我最初的想法是查询两次,分离出 Kits 和 Doses,然后将它们组合在一起;但我确定一定有更简单的方法?

使用 Access 2016,数据已全部更改为实际信息。

【问题讨论】:

  • 您的结果与样本数据有什么关系? “42015”和“35420”从何而来?
  • 为更清晰而编辑,汇总数字是先前值的总和 (SUM(NumKits)=KitMade, SUM(ActKits)=KitActivity, COUNT(kName)=KitSession (All where Name=kName) , 剂量相同,但使用 dName)。
  • 姓名/数字本身是为了问题的目的而编造的。
  • 啊,我知道你在那里做了什么。如果示例数字与示例结果不相加,我通常会花几秒钟(有时几分钟)想知道为什么它不相加,并试图弄清楚什么标题与什么相匹配,然后继续下一个问题而不是弄清楚没有说什么。

标签: sql ms-access summary jet summarization


【解决方案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 不支持 FROM 子句中的 union all。如果这是一个问题,您可以通过创建视图来解决它。

【讨论】:

  • 我必须用它自己的 SELECT 来包装我的 UNION ALL,然后对其执行 SUM 和 GROUP BY,但这很有效,非常感谢。
  • 删除了我的额外选择 - 删除了联合表周围的括号
  • @Sam。 . .哦,我以为 SQLite 是唯一一个不允许使用括号的数据库。
猜你喜欢
  • 1970-01-01
  • 2010-11-03
  • 2020-07-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-12
  • 1970-01-01
相关资源
最近更新 更多