2012-03-23 6 views
0

아래는 비교적 간단한 판매 쿼리입니다.하지만 판매량이있는 딜러뿐만 아니라 모든 판매 업체를 선택하고 싶습니다. 이것이 가능한가?SQL 쿼리 매출이없는 경우에도 모든 고객 추가

SELECT dbo.tblDealer.DealerID, Firstname, LastName, 
SUM(dbo.tblOrderDetail.PSVAmount) AS "PSV", 
SUM(dbo.tblOrderDetail.UplineVolume) AS "Upline", 
SUM(dbo.tblOrderDetail.LineTotal) AS "Product Total" 
FROM tblOrderDetail 
inner join tblOrder 
on dbo.tblOrderDetail.OrderID = dbo.tblOrder.OrderID 
inner join tblDealership on dbo.tblOrder.DealershipID = dbo.tblDealership.DealershipID 
inner join tblDealer on dbo.tblDealership.DealerID = dbo.tblDealer.DealerID 
where orderDate between '3/01/12' and '3/21/12 23:59:59' 
and dbo.tbldealer.active = -1 

GROUP BY dbo.tblDealer.DealerID, Firstname, LastName 
+3

를 외부 –

+1

참조 제프 앳 우드의 [SQL의 시각적 설명 조인 (HTTP 가입 : /을 /www.codinghorror.com/blog/2007/10/a-visual-explanation-of-sql-joins.html) - 매우 도움이 됨 –

답변

3

당신은 조인 당신의 순서를 변경하고, 대신 inner joinouter join 수행해야합니다 왼쪽 시도

SELECT dbo.tblDealer.DealerID, Firstname, LastName, 
SUM(dbo.tblOrderDetail.PSVAmount) AS "PSV", 
SUM(dbo.tblOrderDetail.UplineVolume) AS "Upline", 
SUM(dbo.tblOrderDetail.LineTotal) AS "Product Total" 
FROM tblDealer 
inner join tblDealership 
on dbo.tblDealership.DealerID = dbo.tblDealer.DealerID 
left join tblOrder 
on dbo.tblOrderDetail.OrderID = dbo.tblOrder.OrderID AND orderDate between '3/01/12' and '3/21/12 23:59:59' 
left join tblOrder 
on dbo.tblOrderDetail.OrderID = dbo.tblOrder.OrderID 
where dbo.tbldealer.active = -1 
GROUP BY dbo.tblDealer.DealerID, Firstname, LastName 
관련 문제