Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何进行2个sql查询1_Sql_Sql Server_Tsql - Fatal编程技术网

如何进行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也许,但我想在解释这个问题之前确定这就是目的……这是一个伟大而优雅的解决方案!这是一个伟大而优雅的解决方案!