0

我的工作场所有一个可怕的遗留工具,它已被更新/修补以将信息输出到 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 电子表格中,如果这样更容易的话。

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 回答