我有一個四表:產品,電腦,筆記本電腦和打印機。使用MAX與多表
Products(maker, model, type)
PC(code, model, speed, hd, cd, price)
Laptop(code, model, speed, ram, hd, screen, price)
Printer(code, model, color, type price)
我需要的是找到具有最高價格的產品(PC,筆記本電腦或打印機)的型號。這不適用於case語句,因爲如果兩個型號的價格最高,都需要顯示,並且使用一個case只會選擇一個,然後退出case語句。我想用UNION操作符來做到這一點,但我不知道該怎麼做。這是我到目前爲止:
SELECT model FROM
(SELECT model, MAX(price) FROM
(SELECT model, price FROM Pc UNION ALL SELECT model, price FROM Laptop UNION ALL
SELECT model, price FROM Printer)
GROUP BY model)
但這是不正確的語法,我不知道爲什麼。有任何想法嗎?
這解決了語法的問題,但現在我的查詢返回的每一個型號,僅僅是一個不與最高價格.... – nathpilland
差不多,但它說的價格是無效的列名。我需要一張桌子嗎?運營商爲使價格毫不含糊? – nathpilland
我並不完全確定...是什麼,因爲你可以看到我是初學者:/我認爲我理解它,但SQL服務器仍然不喜歡它。它表示沒有爲'max_price'的第1列指定列名稱 – nathpilland