gpt4 book ai didi

sql-server - 使用联合查询对三个不同表中的三列求和?

转载 作者:行者123 更新时间:2023-12-05 04:10:48 24 4
gpt4 key购买 nike

我有表 t1 和 t2 和 t3我的问题是我希望查询将三个表中的三个列(in 和 out 以及 w)求和为 135我使用这些代码

enter image description here

    select sum(x.aa)  from(
SELECT SUM(t1.in)AS aa FROM t1

union all
SELECT SUM(t2.out) AS aa FROM t2


union all
SELECT SUM(t3.w) AS aa FROM t3
) as x
group by x.aa

最佳答案

我认为您甚至不需要在这里使用 UNION。您可以将每个表总和的三个子查询加在一起:

SELECT
(SELECT SUM(t1.in) FROM t1) +
(SELECT SUM(t2.out) FROM t2) +
(SELECT SUM(t3.w) FROM t3) AS the_sum;

SUM() 函数会忽略 NULL 值,因此上述三个总和中的每一个都不应成为空值问题。但是,如果总和中的每一项都是 NULL,则整个项将为 NULL。解决这个问题的一种方法是使用 COALESCE():

SELECT
(SELECT COALESCE(SUM(t1.in), 0) FROM t1) +
(SELECT COALESCE(SUM(t2.out), 0) FROM t2) +
(SELECT COALESCE(SUM(t3.w), 0) FROM t3) AS the_sum;

关于sql-server - 使用联合查询对三个不同表中的三列求和?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43952132/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com