[英]SQL Server : query join with multiple tables and Group By
我想加入以下三個SQL Server表,如圖所示。 我知道他們必須JOIN
,但我認為正是GROUP BY
令我失望。 我認為這需要在SELECT
內進行SELECT
?
select ActJobs.ID as JobID, ActJobs.JobName, ActJobs.CustomerID
From Job.ActiveJobsTbl as ActJobs
select Cus.ID as CustomerID, concat(Cus.LastName, ', ', Cus.FirstName) as Customer
From Customer.CustomerTbl as Cus
Select Est.ID_Job as JobID, Sum(Est.ItemAmount + Est.SalesTax) As Price
From Job.EstimateTbl as Est
Group By Est.ID_Job
您可以簡單地JOIN
前兩個表,然后將聚合查詢轉換為可以JOIN
的子查詢:
SELECT
ActJobs.ID as JobID,
ActJobs.JobName,
ActJobs.CustomerID,
CONCAT(Cus.LastName, ', ', Cus.FirstName) as Customer,
Est.Price
FROM
Job.ActiveJobsTbl AS ActJobs
INNER JOIN Customer.CustomerTbl AS Cus ON Cus.ID = ActJobs.CustomerID
INNER JOIN (
SELECT ID_Job, SUM(ItemAmount + SalesTax) As Price
FROM Job.EstimateTbl
GROUP BY ID_Job
) AS Est ON Est.ID_Job = ActJobs.ID
使用標量子查詢並加入
select ActJobs.ID as JobID, ActJobs.JobName, ActJobs.CustomerID,
concat(Cus.LastName,', ',Cus.FirstName) as Customer,(select Sum(Est.ItemAmount + Est.SalesTax) from Job.EstimateTbl as Est where Est.ID_Job=ActJobs.ID) as price
From Job.ActiveJobsTbl as ActJobs
inner join Customer.CustomerTbl as Cus on Cus.ID as CustomerID=ActJobs.CustomerID
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.