【发布时间】:2016-03-01 17:33:14
【问题描述】:
我拥有的是一个 MS-SQL 数据库,用于存储来自某些车辆上安装的设备的数据/信息(每辆车 1-3 个设备)。
目前,数据库中有一个名为 DeviceStatus 的表 - 一个大表,用于存储设备连接到 TCP 服务器时的所有信息。记录在此处添加(sql INSERT)或更新(sql UPDATE)。
Sample data:
1040 305 3 8.00 0
1044 305 2 8.00 0
1063 305 1 8.01 1.34
1071 312 2 8.00 0
1075 312 1 8.00 1.33
1078 312 3 8.00 0
1099 414 3 8.00 0
1106 414 2 8.01 0
1113 102 1 8.01 1.34
1126 102 3 8.00 0
备注:驾驶员控制台始终与安装在第一个位置的设备相关(它是位置 1 设备的扩展;显然每辆车只有一个控制台) - 所以,这将是某种限制,以便在下面显示的所需表(视图)中获得正确的信息:)。
我需要的是一个 SQL 查询(命令/语句)来为所谓的“软件版本表”创建一个表(视图),我可以在其中查看安装在车辆中的所有设备的软件版本(所有这些)连接并与服务器通信)...类似于下表:
备注:414 的设备#1 丢失,因为它没有通信(我猜还没有……)
【问题讨论】:
-
你只有3个SW版本还是无限数量的SW?我们可以复制/粘贴的样本比图片更好。您可以使用 SQLFiddle。为什么 414 没有位置 1 但我可以看到 device1SW 版本?
-
@JulienVavasseur:是的,每辆车最多 3 个:通常每个车门都安装一个设备。
-
您应该包含 5-10 个
DeviceInfo的样本和生成的SwVersion,而不是 2 个随机屏幕截图。 Afaik,SwVersions中显示的信息有一半以上未显示在DeviceInfo表中。 -
哦,nvm,我刚刚知道您的 DriverConsoleVersion 来自哪里,我以为您是按 Vehicule+Console 分组的。顺便说一句,朱利安错了;)
-
@groenhen 所以在
DeviceInfo中,任何给定的VehicleNo 都不会超过3 行?
标签: sql sql-server sql-server-2012 qsqlquery