私の前の質問(一連のトレイン番号に基づいて個別のRowIdを選択する)で、RowIdの素晴らしいリストを取得しました。
今、私はそのリストを完全で完全に素晴らしいものにしたいと思います!:)
私の生データ(Excel 2010)は次のようになります。
Time Wagons Delete DayType Plate trainnumber RowId
05.28 1 1 0901-046 2 38676
08.20 2 1 0901-003 2 18676
05.25 2 x 1 0901-046 2 28676
15.28 2 1 0901-046 2 3676
23.20 3 1 0601-001 2 3867
05.08 3 1 0901-046 2 3876
00.28 L x 1 0901-046 2 8676
00.00 1 0901-046 2 367
プライマリRowId(前の質問のリスト)を、次の基準で一致するRowIdとグループ化するリストが必要です。
- Primary行とMatching行では、以下が同じである必要があります。
- トレイン番号
- DayType
- 時間
- プライマリ行とマッチング行では、プレートが異なる必要があります
- ワゴンは1つ以上である必要があります(列には数字、文字、および何もない行が含まれています)
- 削除は空である必要があります
一致するものが見つかったら、一致するRowIdが必要です。
理想的には、次のようなデータセットです。
PrimaryRowId Match#1 Match#2 Match#3 Match#4
15674 5465 456 5456 45656
5564 231 132 1321 7862
Primary RowIdごとにより多くの一致がある可能性がありますが、それは問題ありません。
私のSQLスキルはやや制限されているので、皆さんにお願いします。:)
私はそれがこのようなものかもしれないと思います:
SELECT RowId
FROM Conversion
WHERE trainnumber=trainnumber and daytype=daytype and
time=time and plate<>plate and Wagons>1 and delete=""
GROUP BY RowId
ただし、一度に1つのRowIdしか提供されません。:-/