一个简单的条件聚合应该可以做到这一点
[Status]
是一致的
PCode
Selet PCode
,[Start] = min(case when Milestone='Start' then DeliveryDate end)
,[Ebd] = max(case when Milestone='End' then DeliveryDate end)
,[Status] = max([Status])
From YourTable
Group By PCode
编辑-查找开始和结束状态
Select PCode
,[Start] = min(case when Milestone='Start' then DeliveryDate end)
,[End] = max(case when Milestone='End' then DeliveryDate end)
,[StatusStart] = min(case when Milestone='Start' then [Status] end)
,[StatusEnd] = min(case when Milestone='End' then [Status] end)
From YourTable
Group By PCode