我試圖從不同記錄中選擇不同的值,這些值可以根據特定字段的值具有相同或不同的ID。例如:從不同行中選擇具有相同編號的值的SQL查詢
ID, Color, Shape, Weight, Height, Price
1 blue sq 10 12 5
1 red sq 10 13 6
2 blue sq 10 14 7
3 blue sq 10 15 8
3 red sq 10 16 9
,並試圖得到下面的輸出:
ID, Color, Shape, Weight, Height, PriceBlue, PriceRed
1 red sq 10 12 5 6
1 blue sq 10 12 5 6
2 blue sq 10 14 7 NULL
3 blue sq 10 15 8 9
3 red sq 10 15 8 9
所以,當顏色是紅色的,它需要拿起藍色的,但所有其他領域的高度將來自紅記錄。但是,當id相同時,它也需要提取兩個記錄的價格。 當顏色是藍色時,當兩個記錄具有相同的ID時,它需要拾取所有藍色字段記錄以及藍色和紅色的價格。 如果記錄是唯一的(沒有其他記錄具有相同的ID),那麼它必須相應地拾取所有字段。在這種情況下,第二個價格字段將爲空。 我真的很感激任何幫助。我試圖想出一個查詢,但到目前爲止,我無法找到一種方法來創建藍色記錄的高度值,而不管顏色是什麼。
您需要使用自聯接行用相同的ID和不同的顏色相匹配。請顯示您的嘗試解決方案,SO不是免費的編碼服務。 – Barmar 2015-03-03 00:39:55
您將需要使用'FULL OUTER JOIN'來允許不匹配其他顏色的行。 – Barmar 2015-03-03 00:40:32
我明白。我無法完成我的查詢,因爲我無法弄清楚當顏色爲紅色時如何選擇不同行的值。我可以使用out join等,但不知怎的,我需要弄清楚當顏色是紅色時如何拾取藍色的高度。這是一個不好的例子,但是我正在嘗試尋找解決方案。 – user1832895 2015-03-03 00:54:03