这是表格:
活动表
|Place of order|Order NR | Nr of activity|type of activity| Date of activity|
|01 |1 | 00001 | 1 | Date1 |
|01 |1 | 00002 | 1 | Date1 |
|01 |1 | 00003 | 2 | Date2 |
|02 |1 | 00001 | 1 | Date9 |
|01 |2 | 00001 | 1 | Date4 |
|01 |2 | 00003 | 2 | Date5 |
|01 |2 | 00002 | 3 | Date3 |
|02 |2 | 00001 | 1 | Date10 |
|02 |2 | 00006 | 2 | Date11 |
|02 |2 | 00018 | 2 | Date11 |
|02 |1 | 00002 | 2 | Date1 |
订单地点和订单号必须在一起才能保持唯一性,
Activity Type 1 is order placed;
和
Activity Type 2 is order dispatched
还有其他活动在这种情况下不感兴趣。
出现错误(不知道是怎么回事)。对于少数订单(订单地点和订单编号),同一订单已在同一天下达并放置两次,但它具有不同的活动nr。
我正在尝试为每个订单获取活动类型1和类型2的日期以及订单和订单的位置。
结果应如下所示:
对于已下订单:
|Place of order|Order NR | Nr of activity|type of activity| Date of activity|
|01 |1 | 00001 | 1 | Date1 |
|02 |1 | 00001 | 1 | Date9 |
|01 |2 | 00001 | 1 | Date4 |
|02 |2 | 00001 | 1 | Date10 |
对于订单卸货:
|Place of order|Order NR | Nr of activity|type of activity| Date of activity|
|01 |1 | 00003 | 2 | Date2 |
|02 |1 | 00002 | 2 | Date12 |
|01 |2 | 00002 | 2 | Date5 |
|02 |2 | 00006 | 2 | Date11 |
我无法弄清楚如何从结果中排除重复项。这意味着我只需要一行(活动编号最小的行)。
答案 0 :(得分:1)
请试试这个:
;with cte as(
select rank() over(order by [Nr of activity] ) as rid , * from TableName
) select * from cte where rid=1