如何进行2个sql查询1
我有两个相当简单的查询,我需要做一个。我今天脑子里一片空白如何进行2个sql查询1,sql,sql-server,tsql,Sql,Sql Server,Tsql,我有两个相当简单的查询,我需要做一个。我今天脑子里一片空白 SELECT max(StatusReportID) FROM dbo_VehicleStatusReport 及 其中&MaxStatusReportID2&是第一个查询的结果减去3000-3000 SELECT StatusReportID, StatusReportTime, CarNumber, VehicleID, DriverNumber,
SELECT max(StatusReportID)
FROM dbo_VehicleStatusReport
及
其中&MaxStatusReportID2&是第一个查询的结果减去3000-3000
SELECT StatusReportID,
StatusReportTime,
CarNumber,
VehicleID,
DriverNumber,
DriverID,
VehicleStatus,
LocationX,
LocationY,
Speed,
Direction,
InvalidGPS
FROM dbo_VehicleStatusReport
WHERE StatusReportID >
((SELECT max(StatusReportID) FROM dbo_VehicleStatusReport) - 3000)
只需将其包装在子查询中
SELECT StatusReportID,
StatusReportTime,
CarNumber,
VehicleID,
DriverNumber,
DriverID,
VehicleStatus,
LocationX,
LocationY,
Speed,
Direction,
InvalidGPS
FROM dbo_VehicleStatusReport
WHERE StatusReportID >
((SELECT max(StatusReportID) FROM dbo_VehicleStatusReport) - 3000)
如果目标是查找最新的2999个条目,则以下内容更简单、更可靠:
SELECT TOP (2999) StatusReportID, StatusReportTime, ...
FROM dbo_VehicleStatusReport
ORDER BY StatusReportTime DESC;
这是因为:
标识值可能会在删除和回滚过程中丢失,因此依赖MAX-3000的查询不一定会产生2999行。
标识列可以重新设定种子,值可以被覆盖,因此假设增加值意味着以后会出现问题。
如果目标是查找最新的2999个条目,则以下内容更简单、更可靠:
SELECT TOP (2999) StatusReportID, StatusReportTime, ...
FROM dbo_VehicleStatusReport
ORDER BY StatusReportTime DESC;
这是因为:
标识值可能会在删除和回滚过程中丢失,因此依赖MAX-3000的查询不一定会产生2999行。
标识列可以重新设定种子,值可以被覆盖,因此假设增加值意味着以后会出现问题。
我想你忘了3000…但我需要从dbo_VehiclestStatusReport-3000中选择maxStatusReportID他只需添加>从dbo_VehiclestStatusReport-3000中选择maxStatusReportID你不必将修复作为单独的查询发布,只需编辑原始查询,使其满足要求,仅此而已。我想您忘记了3000…但我需要从dbo_VehiclestStatusReport-3000中选择maxStatusReportID他只需添加>从dbo_VehiclestStatusReport-3000中选择maxStatusReportID您不必将修复作为单独的查询发布,只需编辑原始查询,使其满足要求,就这些。基本上下面是什么,让我联想到的是-3000你能解释一下3000有什么关联吗?比如“查找最新的2999状态报告”?@Nat也许,但我想在解释问题之前确定这就是目的…基本上下面是什么,让我感到困惑的是-3000你能解释一下3000的相关性吗?比如“查找最新的2999状态报告”?@Nat也许,但我想在解释这个问题之前确定这就是目的……这是一个伟大而优雅的解决方案!这是一个伟大而优雅的解决方案!