나는 2 개의 테이블에서 계산을 얻으려고하고 있는데 고생하고있다.하나의 문장에서 2 개의 다른 열의 수를 얻는다.
노트북 항목이있는 테이블, 연락처 링크가있는 테이블, 연락처를 클라이언트에 연결하는 테이블 및 클라이언트를 주소와 연결하는 테이블이 있습니다. 내가하려는 일은 각 우편 번호가 연락처 및 클라이언트별로 메일로 분류 된 횟수를 알아내는 것입니다.
Postcode | Count of Clients | Count of Contacts
UB | 123 | 12345
HA | 223 | 22345
하지만 분명히 연락처와 클라이언트 모두에서 동일한 수를 얻고 있습니다. 나는 항상 오류가 발생하므로 중첩 된 select 문에 넣으려고 할 때 끔찍하게 혼란스러워 지므로 어떤 도움을 주셔서 감사합니다!
select COUNT (DISTINCT ni.NotebookItemId) AS Clients,
COUNT(DISTINCT nl.ObjectId) AS Contacts,
Substring(ad.PostCode, 1, 2) AS Postcode
...
그런 다음 각 필드에 고유 한 값의 두 수를 얻을 것이다
COUNT(DISTINCT thing)
즉 : : 앤드류 당신이 후 수 있습니다 말한대로
select COUNT (ni.NotebookItemId) AS Clients,
COUNT(nl.ObjectId) AS Contacts,
Substring(ad.PostCode, 1, 2) AS Postcode
from NotebookItems ni
inner join notebooklinks nl on ni.NotebookItemId = nl.NotebookItemId
inner join ClientContacts cc on cc.ContactPersonId = nl.ObjectId
inner join address ad on ad.ObjectId = cc.ClientId
where NotebookTypeId = 75 AND ni.CreatedOn > 'mar 16 2012'
AND (ad.postcode like 'UB%' or
ad.postcode like 'HA%')
GROUP BY Substring(ad.PostCode, 1, 2)
order by Contacts desc
당신은 COUNT (DISTINCT 것) 뒤에있을 수 있습니다 .. – Andrew