我有兩張表,一個照顧者和MS SQL Server中的另一個患者。每個病人被分配了一個數字老者的SQL加入和計數
╔════════════════╦══════════════════╦════════════════════╦═════════════════╗
║ Patient Name ║ Primary Carer ║ Secondary Carer ║ Tertiary Carer ║
╠════════════════╬══════════════════╬════════════════════╬═════════════════╣
║ Joe Bloggs ║ John Smith ║ Oscar Wild ║ Tom Cruise ║
║ Mary Sue ║ John Smith ║ Matt Smith ║ Peter Pan ║
║ Peter Parker ║ John Smith ║ Oscar Wild ║ Matt Smith ║
╚════════════════╩══════════════════╩════════════════════╩═════════════════╝
我期待選擇我的照顧者表中的所有記錄,然後計算該護工有多少次是主,在患者表二級或三級照顧者包括那些護理人員誰沒有分配給任何人。
例如;
╔═══════════════╦═══════════════════════╦═════════════════════════╦═══════════════════╗
║ Carer ║ Primary Carer Freq ║ Secondary Carer Freq ║ Third Carer Freq ║
╠═══════════════╬═══════════════════════╬═════════════════════════╬═══════════════════╣
║ John Smith ║ 3 ║ 0 ║ 0 ║
║ Oscar Wilde ║ 0 ║ 2 ║ 0 ║
║ Tom Cruise ║ 0 ║ 0 ║ 1 ║
║ Matt Smith ║ 0 ║ 1 ║ 0 ║
║ Peter Pan ║ 0 ║ 0 ║ 1 ║
║ Barry White ║ 0 ║ 0 ║ 0 ║
╚═══════════════╩═══════════════════════╩═════════════════════════╩═══════════════════╝
感謝您的幫助!
一個子查詢中選擇是最無效率的查詢中的一個,在由外部選擇返回的每一行執行的每個子查詢中選擇。 –
@ M.Ali同意我準備版本'trif'LEFT JOIN'。稍等片刻 – lad2025
如果先三次執行「GROUP BY」,然後再執行三次「LEFT JOIN」,則效率可能會更高。無論如何,+1,因爲它返回正確的結果。 –