我的工作场所有一个可怕的遗留工具已经更新/修补,可以将信息输出到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电子表格中,如果这样可以更容易。
答案 0 :(得分:0)
尝试使用EXCEPT。例如,以下查询将列出Table1中存在但Table2中不存在的所有行:
SELECT Direction, Time, RunNumber, StopIndex
FROM Table1
EXCEPT
SELECT Direction, Time, RunNumber, StopIndex
FROM Table2