3

这是表格:

活动表

|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 在此上下文中还有其他不感兴趣的活动。

有一个错误(不知道它是怎么发生的)。对于少数订单(Place of order 和 Order Nr.),同一订单已在同一天两次下单和下单,但它有不同的活动 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          |

我不知道如何从结果中排除重复项。这意味着我只需要一行(活动数最少的行)。

4

1 回答 1

1

请试试这个:

  ;with cte as(
    select rank() over(order by [Nr of activity] ) as rid , * from TableName
    ) select * from cte where rid=1
于 2017-02-24T11:03:53.597 回答