日期:2014-05-18  浏览次数:20469 次

将循环代入查询
已知:

select Name,Number
where A

但是Number需要通过where循环来得到
while(a<>b)
begin
返回值为一个数组,而其中的循环,会改变where条件的某些变量
end

问,怎么把这个循环代入这个查询语句,并在改变where条件后,正常运行. 循环需与查询同时进行

------解决方案--------------------
没有完全理解楼主的意思。
就理解的来说,可以使用嵌套的with语句生成临时的集合,再在这个集合上面操作。
------解决方案--------------------
试试关联查询
select a.TerminalNo,a.GpsTime,(a.Mileage+b.Mileage) Mileage from GpsPath20120510 a
left join GpsPath20120511 b
on a.TerminalNo=b.TerminalNo


------解决方案--------------------
那能否先将所有表的数据插入到一张临时表,再用group by统计
insert into GpsPathTemp 
select * from GpsPath20120510
insert into GpsPathTemp 
select * from GpsPath20120510
.........

select TerminalNo,GpsTime,sum(Mileage) from GpsPathTemp group by TerminalNo,GpsTime