一尘不染

两个查询的总数

sql

我有两个基本查询,我需要对它们进行总计:

Select hours, sum(hours) FROM table WHERE name='xxx' and Description='Worked'
Select hours2, sum(hours2) FROM table WHERE name='xxx' and Description2='Worked'

我已经尝试了UNION,它将为我提供每个查询的总数,但不会将它们组合在一起。

表设置为:

  • ID
  • Name
  • hours
  • description
  • hours2
  • description2

我需要将小时与描述相关,将小时2与description2相关联,这就是为什么我有两个不同的查询的原因。我需要将小时数和小时数总计2。


阅读 130

收藏
2021-03-17

共1个答案

一尘不染

首先,您错过了groupby,因此,即使mysql不抱怨它,您hourshours2价值观也毫无意义。其次,您UNION可以将的结果放入派生子查询中,这样就可以得到所需的总数:

SELECT SUM(hr) FROM
(
  Select sum(hours) as hr FROM table WHERE name='xxx' and Description='Worked'
  UNION ALL
  Select sum(hours2) as hr FROM table WHERE name='xxx' and Description2='Worked'
)a
2021-03-17