我會盡我所能解釋我需要什麼。我有一個連接多個表的查詢。我無法發佈實際查詢,所以我會舉一個例子。如何爲列值指定排名,並且只顯示SQL中每個訂單項的最高排名值?
左表(表A)包含50個唯一的序列號。查詢輸出必須始終每個唯一序列號只返回一行。其中一個表(表B)我加入(在序列號值上)在我選擇的其中一列中有多個值。列是狀態,並且值是已安裝,DOA或缺失。一個序列號在狀態列中可以有多個值,這將導致一個序列有多個行。
因此,如果序列號1234有一個已安裝的記錄和一個DOA記錄,那麼我得到的是該序列的兩個行而不是一個,這意味着查詢的輸出給了我51行,其中有一個重複的序列號而不是50行。
我想爲狀態列值分配等級,例如Installed = 1,DOA = 2,Missing = 3。我希望查詢只顯示最高排名值,如果沒有值,則顯示NULL。
如果一個串行有一個安裝的記錄和一個DOA記錄,它顯示在輸出中安裝,如果它有一個DOA但沒有安裝,那麼它顯示DOA。
我得到什麼:
TABLE A SN TABLE B SN TABLE B STATUS
1234 1234 Installed
1234 1234 DOA
5678 5678 DOA
我想要什麼:
TABLE A SN TABLE B SN TABLE B STATUS
1234 1234 Installed
5678 5678 DOA
這是可能做到這一點的SQL,如果不是有其他的功能,我可以用它來達到同樣的結果?
是否有過情況下,當有兩個記錄具有相同安裝狀態和SN,如果是你希望它選擇一個還是兩者都返回?如果你只想每個SN有一行,下面的答案就可以工作。 – APH