[英]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.