C# 比较多个表

C# 比较多个表,c#,sqlite,datatable,C#,Sqlite,Datatable,在我的工作场所有一个可怕的遗留工具,它已被更新/修补以将信息输出到SQLite数据库。没有人想触及系统的后端,我也不知道如何深入研究——这不是我的问题。然而,我的问题是: 我有一个SQLite数据库,其中有许多表。每个表表示一天,包含所有公交车运行,如下所示: | Direction | Time | RunNumber | StopIndex | ---------------------------------------------- | In | 6:30

在我的工作场所有一个可怕的遗留工具,它已被更新/修补以将信息输出到SQLite数据库。没有人想触及系统的后端,我也不知道如何深入研究——这不是我的问题。然而,我的问题是:

我有一个SQLite数据库,其中有许多表。每个表表示一天,包含所有公交车运行,如下所示:

| 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     |
有些日子跑步次数可能比其他日子多。所有表中的站点数都将相同

相等的定义是方向和时间都相同。每次运行都被视为一个集合-如果停止的某个时间不同,则需要将整个运行合并到一个表中

我的问题是:

给定一个表列表,生成另一个包含所有给定表上不存在的值的表的最简单方法是什么?这可以在SQLite端完成,也可以通过C#.NET 4.0完成


实际上,我只需要知道不同的运行编号,这样我就可以在以后提取它并将其放入Excel电子表格,如果这样做更容易的话。

尝试使用EXCEPT。例如,以下查询将列出表1中存在但表2中不存在的所有行:

SELECT Direction, Time, RunNumber, StopIndex
FROM Table1
EXCEPT
SELECT Direction, Time, RunNumber, StopIndex
FROM Table2

有没有办法在选择较少的标准上做到这一点?我的问题是,表中的任何位置都可能插入另一个trip,这会导致后续每次trip的RunNumber为n+1。使用此方法会返回加法后的每一行,因为RunNumber为n+1(或插入的运行次数)。