我正在製作各種購物車應用程序,因此當用戶登錄時是否指定了他分配的任何東西OrderNumber
。當他把他的車項目的順序存儲在數據庫中,像這樣:返回表中的所有列,但只返回特定列不同的行
+---+------------+-----------+------------+
|num|CustomerItem|OrderNumber|CustomerName|
+---+------------+-----------+------------+
|1 |Candles |12 |Dorothy |
+---+------------+-----------+------------+
|2 |Keyboard |11 |Kirk |
+---+------------+-----------+------------+
|3 |Lotion |12 |Dorothy |
+---+------------+-----------+------------+
|4 |Monitor |11 |Kirk |
+---+------------+-----------+------------+
|5 |Cups |13 |Kathy |
+---+------------+-----------+------------+
現在,這是我想回到
+---+------------+-----------+------------+
|num|CustomerItem|OrderNumber|CustomerName|
+---+------------+-----------+------------+
|4 |Monitor |11 |Kirk |
+---+------------+-----------+------------+
|1 |Candles |12 |Dorothy |
+---+------------+-----------+------------+
|5 |Cups |13 |Kathy |
+---+------------+-----------+------------+
這些聲明是什麼,我都試了一下:
select * from [mytable] where
[OrderNumber] in (Select max(OrderNumber) FROM [mytable] group by OrderNum)
而且
select * from [mytable] where
[OrderNumber] in (Select Distinct OrderNumber FROM [mytable] group by OrderNum)
無論語句將工作,他們都顯示重複的OrderNumber
列
您需要爲我們提供一個規則,並最終爲SQL Server提供一個規則,以便爲特定的'OrderNumber'選擇其他列值。它應該是具有最高'num'值的行的所有列值嗎?它應該是什麼'MAX()'返回每列。定義一個規則,它必須基於這些列中可用的數據。 –
(我意識到我的第一個建議與您所需的輸出不匹配,因爲它會返回具有num-3而不是1的行) –