0
通過採取參考從here的Oracle SQL的計數
我做了以下查詢:
SELECT INSTITUTE.ID INST_ID,
INSTITUTE.PLACEMENT PLACEMENT,
INSTITUTE.ADDRESS INSTITUTE_LOCATION,
COUNT(DISTINCT INSTITUTE_DEPARTMENT.id) departments
-- COUNT(DISTINCT INSTITUTE_CAMPUS.id) campuses
FROM INSTITUTE
LEFT JOIN INSTITUTE_DEPARTMENT
ON (INSTITUTE.id = INSTITUTE_DEPARTMENT.institute_id)
LEFT JOIN INSTITUTE_COURSE
ON (INSTITUTE.ID = INSTITUTE_COURSE.INSTITUTE_ID)
LEFT JOIN INSTITUTE_CAMPUS
ON (INSTITUTE.ID = INSTITUTE_CAMPUS.INSTITUTE_ID)
WHERE INSTITUTE.ID = 1761
AND INSTITUTE.IS_ACTIVE = 1
AND INSTITUTE.IS_DELETED = 0
AND INSTITUTE.DELETED_DATE IS NULL
--AND INSTITUTE_CAMPUS.IS_ACTIVE = 1
--AND INSTITUTE_CAMPUS.IS_DELETED = 0
--AND INSTITUTE_CAMPUS.DELETED_DATE IS NULL
AND INSTITUTE_DEPARTMENT.IS_ACTIVE = 1
AND INSTITUTE_DEPARTMENT.IS_DELETED = 0
AND INSTITUTE_DEPARTMENT.DELETED_DATE IS NULL
GROUP BY INSTITUTE.ID, INSTITUTE.PLACEMENT, INSTITUTE.ADDRESS
我得到部門域進行正確的計數。
INST_ID | PLACEMENT | INSTITUTE_LOCATION | DEPARTMENTS
1761 NIIT Noida 2
但是,包括校園計數(校園計數爲0這個insitute_id),我得到空行。
In short, when count are o null rows are returned while rows are returned when count are greater than 0.
感謝您的回答,但它不能解決問題。 –
哦!好。沒有任何條件適合?順便說一下,我從這個問題所瞭解的是1761研究所沒有校園存在,你因此得到0行。 –
執行修改後的查詢返回0行,(對於問題的第二部分)是,當1761沒有校園存在時返回0行。 –