重复记录中需要一条记录
need one record in duplicate records
这里是 table:
Activity table
|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 and Order Nr.),同一个订单在同一天两次下单出货,但是activity nr.
我正在尝试获取每个订单的 activity 类型 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 |
我不知道如何从结果中排除重复项。这意味着我只需要一行(最小 activity 数字的行)。
请试试这个:
;with cte as(
select rank() over(order by [Nr of activity] ) as rid , * from TableName
) select * from cte where rid=1
这里是 table:
Activity table
|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 and Order Nr.),同一个订单在同一天两次下单出货,但是activity nr.
我正在尝试获取每个订单的 activity 类型 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 |
我不知道如何从结果中排除重复项。这意味着我只需要一行(最小 activity 数字的行)。
请试试这个:
;with cte as(
select rank() over(order by [Nr of activity] ) as rid , * from TableName
) select * from cte where rid=1