다른 질문을 읽었으며 답변이 내 상황을 해결하지 못하는 것 같습니다. 나는 회사 이름과 그 회사와 관련된 활동 표를 가지고있다.Count()는 NULL 대신에 0을 반환합니다.
지정된 날짜 범위의 액티비티를 계산해야하며, 액티비티가없는 경우 0을 반환해야합니다. 또한 마지막 활동의 날짜를 가져와야합니다 (지정된 날짜 범위를 벗어나더라도).
을 사용하고 있는데, ISNULL()
(비록 존재하지 않으면 null인지 어떻게 확인할 수 있습니까?), 여기서 어디로 가야할 지 모르겠습니다.
이
내가 무엇을 가지고 :SELECT v_rpt_Company.Company_Name, COUNT(DISTINCT SO_Activity.SO_Activity_Recid) as touches, MAX(SO_Activity.Date_Entered) As lasttouch
FROM v_rpt_Member LEFT OUTER JOIN
Company_Team ON v_rpt_Member.Member_RecID = Company_Team.Member_RecID LEFT OUTER JOIN
v_rpt_Company ON Company_Team.Company_RecID = v_rpt_Company.Company_RecID LEFT OUTER JOIN
SO_Activity ON v_rpt_Company.Company_RecID = SO_Activity.Company_RecID
WHERE (Company_Team.AcctMgr_Flag = 1) AND (v_rpt_Member.Member_ID = @member) AND ((SO_Activity.Last_Update >= CONVERT(datetime, @date_start, 101)) AND (SO_Activity.Last_Update <= CONVERT(datetime, @date_end, 101)))
GROUP BY v_rpt_Company.Company_Name
ORDER BY v_rpt_Company.Company_Name ASC,lasttouch DESC,touches DESC
이 최종 답변입니다 : 그래서 같은 (감사합니다 모두)
SELECT a.touches, a.name,b.lasttouch
FROM (
SELECT v_rpt_Company.Company_Name as name,
COUNT(DISTINCT SO_Activity.SO_Activity_Recid) as touches
FROM v_rpt_Company
LEFT OUTER JOIN Company_Team ON Company_Team.Company_RecID = v_rpt_Company.Company_RecID AND Company_Team.AcctMgr_Flag = 1
LEFT OUTER JOIN v_rpt_Member ON v_rpt_Member.Member_RecID = Company_Team.Member_RecID
LEFT OUTER JOIN SO_Activity ON v_rpt_Company.Company_RecID = SO_Activity.Company_RecID AND ((SO_Activity.Last_Update >= CONVERT(datetime, @date_start, 101)) AND (SO_Activity.Last_Update <= CONVERT(datetime, @date_end, 101)))
WHERE v_rpt_Member.Member_ID = @member
Group By v_rpt_Company.Company_Name) As a
LEFT OUTER JOIN
(SELECT MAX(SO_Activity.Date_Entered) As lasttouch, v_rpt_Company.Company_Name as name
FROM v_rpt_Company
LEFT OUTER JOIN Company_Team ON Company_Team.Company_RecID = v_rpt_Company.Company_RecID AND Company_Team.AcctMgr_Flag = 1
LEFT OUTER JOIN v_rpt_Member ON v_rpt_Member.Member_RecID = Company_Team.Member_RecID
LEFT OUTER JOIN SO_Activity ON v_rpt_Company.Company_RecID = SO_Activity.Company_RecID
WHERE v_rpt_Member.Member_ID = @member
GROUP BY v_rpt_Company.Company_Name) as b
ON a.name = b.name
아플리케가 Company_name''의 값이 때'NULL'를 표시하는'COUNT'입니다?, 아니면 총리는'Company_name'는'NULL'입니다 않습니다 ? – Lamak
테이블 구조도 게시 할 수 있습니까? –
아니요, 활동이 0 인 회사는 행이 반환되지 않습니다. 나는 테이블 구조를 게시 할 수 없으며 중요한 회사 데이터가 포함되어 있습니다. 미안합니다. –