sql 循环表,获取表中某一字段作为查询语句的条件之一

DECLARE @timeSpan TABLE
( id int,
intime DATETIME ,
outtime DATETIME )
DECLARE @distance TABLE
( x float, y float )

INSERT INTO @timeSpan
( id,intime,outtime)

SELECT ROW_NUMBER() over (order by att.inTime) ‘rowindex‘,att.inTime,att.outTime
FROM attendance att
inner join Vehicle as veh
on att.employeeid=veh.ID
WHERE intime BETWEEN ‘2014/11/17 0:00:00‘ AND ‘2014/11/17 10:14:00‘ and veh.vehicleDepartmentId=3 and veh.vehicleType=1 and veh.id=-297 and att.occday=20141117
order by att.inTime

declare @count int
declare @currentCount int
declare @intime datetime
declare @outtime datetime
select @count = COUNT(*) from @timeSpan
set @currentCount =0
while @count >@currentCount
begin
set @currentCount [email protected]+1
select @intime =intime, @outtime =outtime from @timeSpan where @currentCount =id
INSERT INTO @distance
( x,y)
select x,y from (select wp.*,wv.x,wv.y FROM (
SELECT workSiteId,employeeId FROM workSitePass where employeeid=‘-297‘ and sTime BETWEEN @intime and @outtime
) AS wp INNER JOIN workSite as wv
on wp.workSiteId=wv.number
inner join Vehicle as ev on wp.employeeId=ev.id
left join deviceLocMap as dlm on dlm.number=wv.number ) as t1

end

select * from @distance

时间: 2024-09-29 11:54:16

sql 循环表,获取表中某一字段作为查询语句的条件之一的相关文章

SQLSERVER和ORACLE系统表获取表名 列名以及列的注释

在工作中从数据库取的数据要导出来,但是发现导出的EXCEL中列名都是字段名(英文),为此搜集资料怎么把字段名变为中文名称,而发现ORACLE和SQLSERVER(用的SQLSERVER2008R2)又有所不同,具体如下: SQLSERVER数据库: 系统表: ---获取表的相关信息              select * from SYS.OBJECTS  (说明:name:表名 object_id:表的ID)  ---获取列的相关信息 select * from SYS.COLUMNS (

获取字符串中某一个字段的数据,GetValueFromStr

gps数据格式为:$GPRMC,024813.640,A,3158.4608,N,11848.3737,E,10.05,324.27,150706,,,A* /********************************************************************** *版权所有 (C)2015, Wuyq. * *文件名称: GetValueFromStr.c *内容摘要:用于演示从gps数据字符串中获取相应的内容 *其它说明:无 *当前版本: V1.0 *作

反射获取类中的指定字段

** Class.getField(String)方法可以获取类中的指定字段(可见的), 如果是私有的可以用getDeclaedField("name")方法获取,通过set(obj, "李四")方法可以设置指定对象上该字段的值, 如果是私有的需要先调用setAccessible(true)设置访问权限,用获取的指定的字段调用get(obj)可以获取指定对象中该字段的值 @throws Exception */ public static void main(Str

oracle 语句之对数据库的表名就行模糊查询,对查询结果进行遍历,依次获取每个表名结果中的每个字段

语句的执行环境是plsql的sql窗口, 语句的目的是从整个数据库中的所有表判断 不等于某个字段的记录数 . 代码如下: declare s_sql clob:=''; -- 声明一个变量,该变量用于存储查询的sql语句 v_cityCode varchar2(20); -- 每个sql语句执行完的查询结果 code varchar2(20); -- 查询条件 begin -- 开启事务 code :='110112'; for wf in(select table_name from user

jdbc 通过rs.getString()获取数据库中的时间字段问题

在mysql中的一张表中存在一个字段opr_time为datetime类型, 在JDBC 中通过rs.getString("opr_time");来获取使会在日期后面添加".0", 例如日期为:2014-06-01 12:10:20 查询出来为:2014-06-01 12:10:20.0 解决方法:通过rs.getTimestamp("opr_time")获取对应的时间戳然后调用toDateStr(Timestamp tt)方法就可以. publ

SQL 将一条记录中多个字段的值拼接为一个字段 && 将多行数据合并成一行,并且拼接CONVERT() 、for xml path的使用

接着上篇文章的订单表(商品编号,价格设置时间id(类似于创建时间,创建时间约早,则act_id越小) ,价格的时间段,商品价格) 一.将一条记录中多个字段的值拼接为一个字段 现要求将两个时间段合并为一个字段,应该如何做呢? 先来看下理想的结果: 查询出的时间段合并到一起了: 代码如下,将查询的字段用+'你想要的符号' + 拼接即可 select item,act_id,loc_id,convert(varchar(100),start_date,20)+ '-' +convert(varchar

怎样从生产数据库中获得想要的查询语句,把结果集批量插入到磁盘txt文件中

第一步:建立存储过程       实现传入参数,生成结果到磁盘的txt文件中: USE [XXXXX] GO /****** Object:  StoredProcedure [dbo].[Proc_sql_to_file]    Script Date: 2018/5/13 15:47:10 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- ==========================================

SQL SERVER 月、季、年统计与常用查询语句汇总

一.SQL SERVER 月.季.年统计查询 --本天 SELECT *FROM dbo.TableName WHERE DATEDIFF(DAY,TimeField,getdate())= 0; --本周 SELECT *FROM dbo.TableName WHERE DATEDIFF(WEEK,TimeField,getdate())= 0; --本月 SELECT *FROM dbo.TableName WHERE DATEDIFF(MONTH,TimeField,getdate())=

PHP中对mysql预编译查询语句的一个封装

原文地址:http://chen-shan.net/?p=474 为了防止sql注入,我们都使用过mysqli这个类,但是每次都需要绑定参数,绑定结果等,比较麻烦,所以可以把这些重复的语句封装成一个函数. 一.封装前. 传统的一个预编译方式的”select”查询代码: $id = "1"; $name = "test_name"; $db_obj = new mysqli("localhost", "db_user", &qu