繁体   English   中英

SQL查询使用Sum()连接两个查询

[英]SQL Query Join two Queries with Sum()

我知道这对您的sql人员来说很简单,但是我试图将两个简单的查询合并为一个。 从代码中可以明显看出job.ActiveJob.ID = job.EstimateTbl.ID_Job。

我正在尝试获取:id,JobName,sum(itemAmount)

谢谢你的帮助。

SELECT a.id, a.JobName
FROM job.ActiveJobsTbl AS a
WHERE a.ID = '100' 

SELECT SUM(itemAmount)
FROM job.EstimateTbl
WHERE ID_Job = '100'

您可以通过ON E.ID_Job = A.ID JOIN表,并使用GROUP BY获取SELECT的值

SELECT A.id, A.JobName, SUM(E.itemAmount) AS Amount 
FROM job.ActiveJobsTbl AS A
INNER JOIN job.EstimateTbl E ON E.ID_Job = A.ID 
WHERE A.ID = '100'  
GROUP BY A.id, A.JobName;

使用LEFT JOIN

SELECT a.id, a.JobName,EstimateTbl.itemAmount
FROM job.ActiveJobsTbl AS a
left join
( 
    SELECT SUM(itemAmount) itemAmount,ID_Job
    FROM job.EstimateTbl
    group by ID_Job
) EstimateTbl on  EstimateTbl.ID_Job = a.ID
WHERE a.ID = '100' 

您可以使用APPLY

select a.id, a.JobName, t.itemAmount 
from job.ActiveJobsTbl AS a OUTER APPLY
     (SELECT SUM(t.itemAmount) AS itemAmount
      FROM job.EstimateTbl AS t
      WHERE t.ID_Job = a.ID
     ) t
WHERE a.ID = 100; 

尝试这个:

SELECT A.id, A.JobName, SUM(E.itemAmount) AS Amount 
FROM job.ActiveJobsTbl AS A
INNER JOIN job.EstimateTbl E ON E.ID_Job = A.ID 
WHERE A.ID = '100'
GROUP BY A.id, A.JobName;

暂无
暂无

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

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