繁体   English   中英

MS Access SQL 中的两个聚合函数?

[英]Two aggregate functions in MS Access SQL?

SELECT c.Category, SUM(c.[Market Value]), SUM([p.Market Value])
FROM Dec AS c, [NOV] as p
GROUP BY c.Category
;

告诉我类别不是聚合函数的一部分。 我只想查看两个表的每个类别的总和。 我不希望只出现某些值,所以我应该使用 Join 吗?

编辑:

SELECT c.[Category],  SUM(c.[Market Value]), SUM(p.[Market Value])
FROM Dec AS c
INNER JOIN Nov AS p ON c.ID = p.ID
GROUP BY c.category, p.Category
;

这是我使用 JOIN 编写的内容,它只是不间断地运行查询。 我就等着吗? 80000行数据,做一个按类别分组的SUM只做了一个月,瞬间就回本了,为什么做两张表这么难?

您需要联合所有数据:

SELECT Category, [market Value]
FROM DEC
UNION ALL 
SELECT Category, [market Value]
FROM NOV

运行此查询时,您将获得两个月的合并数据。 如果您想获得组合数据的总和,只需使用查询:

SELECT Category, SUM([market Value]) as sum_value
FROM (
SELECT Category, [market Value]
FROM DEC
UNION ALL 
SELECT Category, [market Value]
FROM NOV
) as A
GROUP BY Category

现在,这不是你想要的。 您需要两列:一列用于 11 月,一列用于 12 月。为此,您需要稍微修改 UNION ALL 查询:

SELECT Category, [market Value], 'Dec' as type
FROM DEC
UNION ALL 
SELECT Category, [market Value], 'Nov' as type
FROM NOV

最后的查询将是:

SELECT Category, 
SUM(iif(type='Dec', [Market Value], 0)) as Dec_Value, 
SUM(iif(type='Nov', [Market Value], 0)) as Nov_Value
FROM (
SELECT Category, [market Value], 'Dec' as type
FROM DEC
UNION ALL 
SELECT Category, [market Value], 'Nov' as type
FROM NOV
) as A
GROUP BY Category

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM