下面是兩個表(請參閱SQLFiddle)的示例,我試圖創建select語句,其中一個表是查找(Facility),另一個是數據表(WOENTITY) ,我想選擇從查找中獲取facitityname,並且每當它找到facilityID的多個條目時,只是將文本寫爲'Multiple locations',或者如果它找到null或零,然後寫'unknown',否則只需寫入facilityname,我試圖做一個用單個條目替換多個計數的情況。任何幫助表示讚賞。Case語句和加入多個表的SQL問題
連接到SQL小提琴:Click Here
下面是表看起來怎麼樣,表WOEntity截圖和表設施 Image showing the table schema and expected end result
我首先從WOEntity表,然後想多個位置ID的獲取計數創建一個選擇Case語句但無濟於事,這裏是草案代碼。
select e.WOID, count(e.ENTITYUID) as CNT,
(case
when e.ENTITYUID <> '0' and count(e.ENTITYUID) <=1 then
(Select FACILITYNAME from FACILITY l where e.ENTITYUID =
l.FACILITYID)
when count(e.ENTITYUID) > 2 then 'MULTIPLE FACILITIES'
else 'UNKNOWN LOCATIONS'
end) as facilityName
From WOENTITY e
group by e.WOID order by WOID;
什麼是您預期的結果? – Horaciux
感謝您的回覆,預期的結果是我只想通過WOID進行分組,而不是實體進行分組。我希望看到兩列,不同的WOID(WOID的每個條目)和設施名稱(來自查找) – Abdul
OP,當爲您的問題提供其他信息時,請編輯您的原始問題。謝謝,歡迎來到Stack Overflow。 – STLDeveloper