도움이 될 것인가?
SELECT c.new_name, d.new_SegmentName, ISNULL(COUNT(a.CustomerId),0) as jumlah
FROM filterednew_area c LEFT JOIN filteredaccount b ON b.new_AreaId = c.new_areaId
LEFT JOIN filterednew_partnersegment d ON b.new_PartnerSegmentId = d.new_partnersegmentId
LEFT JOIN filteredIncident a ON a.CustomerId = b.AccountId
WHERE MONTH(a.new_trxdate) = '10' AND YEAR(a.new_trxdate) = '2012'
AND c.new_areaid IN ('3C26906E-5C13-E211-8D39-005056850007','4E26906E-5C13-E211-8D39-005056850007')
GROUP BY c.new_name, d.new_SegmentName
항상 영역을 원할 경우 참여를 시작해야합니다.
이 쿼리를 사용해보십시오.
편집 : 편집 후 테이블 솔루션
select C.Area_Name, C.Segment_Name, ISNULL(count(I.incident_id), 0)
from customer C left outer join incident I
on C.Customer_name = I.Customer_Name
group by C.Area_Name, C.Segment_Name
편집 2 :
이 작업을 수행하려면 카티 제품에 해결책 나는 가능한 세그먼트와 테이블 세그먼트이 상상 (그리고 난 이 종류의 테이블이 첫 번째 쿼리에 있다고 생각하십시오.)
SELECT A.Area_Name, A.Segment_name, Count(Incident.Incident_Id) AS TOT
FROM
(
(SELECT Distinct Customer.Area_Name, Segment.Segment_name
FROM Segment, Customer
) AS A
LEFT OUTER JOIN Customer AS C
ON (C.Area_Name = A.Area_Name) AND (C.Segment_name = A.Segment_name)
)
LEFT OUTER JOIN Incident ON C.Customer_Name = Incident.Customer_name
GROUP BY A.Area_Name, A.Segment_name;
쿼리의 결과
Area_Name | Segment_name | TOT
JAKARTA | AIRPORT | 0
JAKARTA | PETROLEUM | 1
JAKARTA | TRADITIONAL | 1
MEDAN | AIRPORT | 1
MEDAN | PETROLEUM | 0
MEDAN | TRADITIONAL | 1
PLZ 데이터 –
@RahulVasantraoKamble 테이블의 구조를 제공하는 것이다 : 테이블 구조는 매우 단순하다. Incident 테이블에는 customerid와 incident_id가 있습니다. 고객 테이블에는 customerid, new_areaid, new_partnersegment id가 있습니다. Partnersegment 테이블에는 new_partnersegmentid, new_name이 있습니다. – user1875495
단순하지만 Medan과 Petroleum 조합은 없습니다. 한 지역에 대해 석유 및 전통에 대한 집계를 얻으려고하십니까? 아니면 "공항"은 석유와 우발적 인 데이터 샘플을 의미합니다. – DRapp