sql汇总多个表中的数据 [英] sql sum data from multiple tables

查看:55
本文介绍了sql汇总多个表中的数据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有 2 个表 AP 和 INV,其中都有 [PROJECT] 和 [Value] 列.

I have 2 tables AP and INV where both have the columns [PROJECT] and [Value].

我希望查询返回如下内容:

I want a query to return something like this :

项目 |SUM_AP |SUM_INV

PROJECT | SUM_AP | SUM_INV

我想出了下面的代码,但它返回了错误的结果(总和是错误的).

I came up with the code below but it's returning the wrong results ( sum is wrong ).

SELECT AP.[PROJECT],
SUM(AP.Value) AS SUM_AP, 
SUM(INV.Value) AS SUM_INV
FROM AP INNER JOIN INV ON (AP.[PROJECT] =INV.[PROJECT])
WHERE AP.[PROJECT] = 'XXXXX'
GROUP BY AP.[PROJECT]

推荐答案

您的查询结果是错误的,因为您尝试汇总的值正在分组,这会导致 SUM<中包含重复的值/代码>.

The results from your query are wrong because the values you are trying to summarize are being grouped, which causes duplicate values to be included in the SUM.

您可以通过几个子选择来解决它:

You could solve it with a couple of sub-selects:

SELECT 
    AP1.[PROJECT],
    (SELECT SUM(AP2.Value) FROM AP AS AP2 WHERE AP2.PROJECT = AP1.PROJECT) AS SUM_AP,
    (SELECT SUM(INV2.Value) FROM INV AS INV2 WHERE INV2.PROJECT = AP1.PROJECT) AS SUM_INV
FROM AP AS AP1 
    INNER JOIN INV AS INV1 
        ON (AP1.[PROJECT] =INV1.[PROJECT])
WHERE AP1.[PROJECT] = 'XXXXX'
GROUP BY AP1.[PROJECT]

这篇关于sql汇总多个表中的数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆