table1에서 모든 행을 가져와서 table1의 각 사람에 대해 table3에 총 열을 가져 오려고합니다. 하위 쿼리, 내부 조인 또는 일반 where 절에서 Where 절을 어디에서든지 사용하지 않으면이 작업을 수행 할 수 있습니다. 아래의 where 절을 사용하면 제공된 날짜 사이에 table2의 레코드가 있고 table1에있는 사람들 만 검증되었습니다.하나의 테이블에서 모든 행 가져 오기 where 절을 사용하여 두 번째 테이블의 열 합계
내가 원하는 것은 table1의 모든 행이지만, 제공된 날짜 사이에 있으며 검증 된 table2의 레코드 만 합산합니다.
단일 쿼리에서이 작업을 수행 할 수있는 방법이 있습니까?
SELECT table1.ID
, table1.LName
, table1.FName
, (Select SUM(table3.DollarValue) Where table2.Verified = 1) AS total
FROM table3
INNER JOIN table2 ON table3.IncentiveID = table2.IncentiveID
RIGHT OUTER JOIN table1 ON table2.ID = table1.ID
Where table2.date >= '1/1/2012'
AND table2.date <= '12/31/2012'
AND table2.Verified = 1
Group By table1.ID, table1.LName, table1.FName, table2.Verified
Order By table1.LName, table1.FName
도움을 주셔서 감사합니다.
는 그래서,'date' 열이 테이블의 느릅 나무에 속하는를? 그리고'table3'은 무엇을위한 것입니까? 또한, 당신은 당신이'table2'의 레코드를 합치기를 원하지만'table3'의 컬럼을 사용하고 있다고 말하면, 당신의 게시물을 명확히 할 수 있습니까? – Lamak
@Lamak 더 명확하게하기 위해 내 게시물을 업데이트했습니다. Table3은 table2와 일대 다 관계가 있습니다. 여기서 table3은 합계하려는 값을 가졌지 만 table2는 table1의 사람들이 작업의 인스턴스 (날짜 및 확인 됨)를 보유합니다. – Addicted2HD