0

私の職場には、情報を SQLite データベースに出力するように更新/パッチが適用された恐ろしいレガシー ツールがあります。誰もシステムのバックエンドに触れたがりませんし、私はそれを掘り下げるのに十分な知識がありません - 私の問題ではありません。ただし、ここに私の問題があります:

多数のテーブルを含む SQLite データベースがあります。各テーブルは 1 日を表し、次のようにリストされたすべてのバスの運行が含まれています。

| Direction |   Time   | RunNumber | StopIndex |
 ----------------------------------------------
|    In     |   6:30   |     1     |     1     |
|    In     |   6:35   |     1     |     2     |
|    In     |   6:40   |     1     |     3     |
|    In     |   6:45   |     1     |     4     |
|    In     |   7:30   |     2     |     1     |
|    In     |   7:35   |     2     |     2     |
|    In     |   7:40   |     2     |     3     |
|    In     |   7:45   |     2     |     4     |
|    Out    |   6:40   |     1     |     1     |
|    Out    |   6:45   |     1     |     2     |
|    Out    |   6:50   |     1     |     3     |
|    Out    |   6:55   |     1     |     4     |

ある日は、他の日よりも多くのランが行われることがあります。停留所の数は、すべてのテーブルで同じになります。

等しいの定義は、方向と時間の両方が同じであるということです。各ランはセットとして扱われます。ストップの時間の 1 つが異なる場合は、ラン全体をテーブルにマージする必要があります。

私の質問は:

テーブルのリストが与えられた場合、与えられたすべてのテーブルに存在しない値を含む別のテーブルを生成する最も簡単な方法は何でしょうか? これは、SQLite 側または C# .NET 4.0 で実行できます。

実際には、異なる実行番号を知る必要があるだけなので、後でそれを抽出して Excel スプレッドシートに入れることができます。

4

1 に答える 1

0

EXCEPT を使用してみてください。たとえば、次のクエリは、Table1 には存在するが Table2 には存在しないすべての行を一覧表示します。

SELECT Direction, Time, RunNumber, StopIndex
FROM Table1
EXCEPT
SELECT Direction, Time, RunNumber, StopIndex
FROM Table2
于 2012-10-16T12:22:46.310 に答える