0
時間を追跡しており、与えられたシフトに費やされた時間を報告する必要があります。テーブルは以下のようになり、サービス注文のために繰り返されますが、段階が異なります。TSQL:行と列をカバーする
serviceorderid stageid recid datetimeexecuted
WO-439660 Travelling 5639344479 2016-08-22 19:30:00.000
WO-439660 Started 5639344574 2016-08-22 20:30:00.000
WO-439660 Complete 5639345177 2016-08-22 22:30:00.000
WO-439660 Travelling 5639345178 2016-08-22 22:30:00.000
WO-439660 Suspended 5639349633 2016-08-22 23:00:00.000
WO-439660 Travelling 5639349917 2016-08-24 21:00:00.000
WO-439660 Started 5639349918 2016-08-24 21:00:00.000
WO-439660 Suspended 5639349920 2016-08-24 21:45:00.000
WO-439660 Travelling 5639349921 2016-08-24 21:45:00.000
WO-439660 Started 5639349923 2016-08-24 22:15:00.000
WO-439660 Complete 5639349925 2016-08-24 22:45:00.000
WO-439660 Travelling 5639349926 2016-08-24 22:45:00.000
WO-439660 Started 5639349927 2016-08-24 23:30:00.000
WO-439660 Complete 5639349928 2016-08-24 23:30:00.000
staged = Travelingで始まる作業オーダーごとに1つの行があるようにピボットする必要があります。このように:
serviceorderid travel started completed susp
WO-439660 5639344479 5639344574 5639345177
WO-439660 5639345178 5639349633
WO-439660 5639349917 5639349918 5639349920
WO-439660 5639349921 5639349923 5639349925
など
これは、ビューで記述する必要があります。
シフトは常にstageId = Travelingから始まります.1つのTravelingから別のものへすべてをグループ化できれば、私はピボットできるはずです。私はシフトが日を越えることができるので、日付でグループ化することはできません。ここでTSQLに苦労し、どんな助けにも感謝します。
あなたがテキストとしてサンプルデータを含めることはできますか? –
イメージをテキストデータに置き換えました – Greg