我有一种情况,我需要根据表中的设置和序号集仅显示最上面的行。根据序数和属性数据选择前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