我有一種情況,我需要根據表中的設置和序號集僅顯示最上面的行。根據序數和屬性數據選擇前n條記錄
下面的示例數據集顯示了兩個客戶;每個客戶都有不同的產品。 由於NumRowsToShow
是「1」我只想爲每個客戶顯示一行(基於序數的最上一行)。
| CustomerID | ProductID | Ordinal | NumRowsToShow |
+------------+-----------+---------+---------------+
| 1 |A |1 |1 |
| 1 |B |2 |1 |
| 1 |C |3 |1 |
| 5 |D |1 |1 |
| 5 |E |2 |1 |
| 5 |F |3 |1 |
查詢後的結果集運行應該是
| CustomerID | ProductID |
+------------+-----------+
| 1 |A |
| 5 |D |
在相同的情況下,如果NumRowsToShow
是1對CustomerID,1和2對CustomerID,5我會看到類似。
| CustomerID | ProductID | Ordinal | NumRowsToShow |
+------------+-----------+---------+---------------+
| 1 |A |1 |1 |
| 1 |B |2 |1 |
| 1 |C |3 |1 |
| 5 |D |1 |2 |
| 5 |E |2 |2 |
| 5 |F |3 |2 |
結果查詢之後設定的運行應該是
| CustomerID | ProductID |
+------------+-----------+
| 1 |A |
| 5 |D |
| 5 |E |
如何才能做到這一點?
包括實際結果集的屏幕截圖,其中突出顯示了我想要篩選的內容,但可能會對您有所幫助。
Screencap http://www.harpernet.net/se/cap01.jpg
如果什麼客戶的行有三個不同的'NumRowsToShow'(比如1,2,3 )? – 2012-04-11 18:56:30
那不會發生; NumRowsToShow來自每個CustomerID的設置。一樣的。這是幾個查詢的結果。客戶/產品ID不是實際的結果集,我只是試圖提供一個簡單的例子,我試圖過濾掉。 – sugarcrum 2012-04-11 19:23:59