私は SQL Server 2008 を使用しています。このデータは、Day および ManualOrder で並べられたように見えるクエリで返されます...
ID Day ManualOrder Lat Lon
1 Mon 0 36.55 36.55
5 Mon 1 55.55 54.44
3 Mon 2 44.33 44.30
10 Mon 3 36.55 36.55
11 Mon 4 36.55 36.55
6 Mon 5 20.22 22.11
9 Mon 6 55.55 54.44
10 Mon 7 88.99 11.22
77 Sun 0 23.33 11.11
77 Sun 1 23.33 11.11
私がやろうとしているのは、このデータを日、次に ManualOrder で並べ替えることです...しかし、行カウンターが必要です (これを MapPinNumber と呼びましょう)。問題は、同じ日の同じ緯度/経度に再び遭遇したら、この行カウンターを繰り返したいということです。次に、緯度/経度が異なる場合は、次の行の次の行カウンターで続行できます。最終結果で Day、ManualOrder の順序を維持する必要があります。
これらをマップ上にプロットします。この番号は、ManualOrder の順序でプロットするピン番号を表す必要があります。このデータはドライバーのルートを表し、ドライバーはスケジュールで 1 日に同じ緯度/経度に複数回行く可能性があります。たとえば、彼は車で Walmart に行き、次に CVS に行き、次に再び Walmart に戻り、次に Walgreens に行きます。必要な MapPinNumber 列は 1、2、1、3 である必要があります。彼は月曜日に複数回ウォルマートに行きますが、彼が運転する最初の場所でもあったため、常にマップのピン #1 になります。
計算する必要がある MapPinNumber 列の結果が必要なものは次のとおりです。ROW_NUMBER と RANK で考えられるすべてを試してみましたが、気が狂いそうです! いCURSORの使用を避けようとしています。
ID Day ManualOrder Lat Lon MapPinNumber
1 Mon 0 36.55 36.55 1
5 Mon 1 55.55 54.44 2
3 Mon 2 44.33 44.30 3
10 Mon 3 36.55 36.55 1
11 Mon 4 36.55 36.55 1
6 Mon 5 20.22 22.11 4
9 Mon 6 55.55 54.44 2
10 Mon 7 88.99 11.22 5
77 Sun 0 23.33 11.11 1
77 Sun 1 23.33 11.11 1