22,302
社区成员




if exists (select * from sysobjects where id = OBJECT_ID('[kqRecord]') and OBJECTPROPERTY(id, 'IsUserTable') = 1) DROP TABLE [kqRecord]
CREATE TABLE [kqRecord] ( [Guid] [varchar] (32) NOT NULL , [RegisterNumber] [varchar] (20) NOT NULL , [Name] [varchar] (20) NOT NULL , [Ndate] [datetime] NOT NULL , [Ntime] [datetime] NOT NULL , [Nlocate] [varchar] (3) NOT NULL , [Mode] [varchar] (8) NOT NULL )
ALTER TABLE [kqRecord] WITH NOCHECK ADD CONSTRAINT [PK_kqRecord] PRIMARY KEY NONCLUSTERED ( [Guid] )
INSERT [kqRecord] ( [Guid] , [RegisterNumber] , [Name] , [Ndate] , [Ntime] , [Nlocate] , [Mode] ) VALUES ( '0386620692784FD9A01E4CF43E9F8745' , '100110' , 'micropu' , '2013-02-26 00:00:00.000' , '1899-12-30 14:23:20.000' , '100' , '人脸识别' )
INSERT [kqRecord] ( [Guid] , [RegisterNumber] , [Name] , [Ndate] , [Ntime] , [Nlocate] , [Mode] ) VALUES ( '29B9D364884D495E9CEE961928CD40AD' , '100110' , 'micropu' , '2013-02-26 00:00:00.000' , '1899-12-30 14:21:31.000' , '100' , '人脸识别' )
INSERT [kqRecord] ( [Guid] , [RegisterNumber] , [Name] , [Ndate] , [Ntime] , [Nlocate] , [Mode] ) VALUES ( 'AA0A5CA236D543AB888A352F58075D46' , '100110' , 'micropu' , '2013-02-25 00:00:00.000' , '1899-12-30 14:25:28.000' , '100' , '人脸识别' )
if exists (select * from sysobjects where id = OBJECT_ID('[RecordImage]') and OBJECTPROPERTY(id, 'IsUserTable') = 1) DROP TABLE [RecordImage]
CREATE TABLE [RecordImage] ( [RecordGUID] [varchar] (32) NOT NULL , [RecordImage] [image] NULL )
ALTER TABLE [RecordImage] WITH NOCHECK ADD CONSTRAINT [PK_RecordImage] PRIMARY KEY NONCLUSTERED ( [RecordGUID] )
INSERT [RecordImage] ( [RecordGUID] , [RecordImage] ) VALUES ( '0386620692784FD9A01E4CF43E9F8745' ,图片数据3)
INSERT [RecordImage] ( [RecordGUID] , [RecordImage] ) VALUES ( '29B9D364884D495E9CEE961928CD40AD' ,图片数据2)
INSERT [RecordImage] ( [RecordGUID] , [RecordImage] ) VALUES ( 'AA0A5CA236D543AB888A352F58075D46' , 图片数据1 )
--系统临时表
drop table ##temp
declare @s varchar(8000)
set @s='select convert(varchar,Ndate,23) 日期,registerNumber 注册号,name 姓名 '
select @s=@s+',max(case when rn='+ltrim(rn)+' then convert(varchar,Ntime,24) end) as 打卡'+ltrim(rn)
+',max(case when rn='+ltrim(rn)+' then Guid end) as 图像'+ltrim(rn)
from (select distinct rn from (select rn=row_number()over(partition by registerNumber,ndate order by ndate,ntime),Ntime,Ndate from kqRecord where ndate>='2013-2-1')a)t
set @s=@s+' into ##temp from (select rn=row_number()over(partition by registerNumber,ndate order by ndate,ntime),* from kqrecord where ndate>=''2013-2-1''
) t group by ndate,registerNumber,name'
exec(@s)
--update ##temp
select * from ##temp
日期 注册号 姓名 打卡1 图像1 打卡2 图像2
2013-02-25 100110 micropu 14:25:28 AA0A5CA236D543AB888A352F58075D46 NULL NULL
2013-02-26 100110 micropu 14:21:31 29B9D364884D495E9CEE961928CD40AD 14:23:20 0386620692784FD9A01E4CF43E9F8745
--考勤记录表
if exists (select * from sysobjects where id = OBJECT_ID('[kqRecord]') and OBJECTPROPERTY(id, 'IsUserTable') = 1) DROP TABLE [kqRecord]
CREATE TABLE [kqRecord] ( [Guid] [varchar] (32) NOT NULL , [RegisterNumber] [varchar] (20) NOT NULL , [Name] [varchar] (20) NOT NULL , [Ndate] [datetime] NOT NULL , [Ntime] [datetime] NOT NULL , [Nlocate] [varchar] (3) NOT NULL , [Mode] [varchar] (8) NOT NULL )
ALTER TABLE [kqRecord] WITH NOCHECK ADD CONSTRAINT [PK_kqRecord] PRIMARY KEY NONCLUSTERED ( [Guid] )
INSERT [kqRecord] ( [Guid] , [RegisterNumber] , [Name] , [Ndate] , [Ntime] , [Nlocate] , [Mode] ) VALUES ( '0386620692784FD9A01E4CF43E9F8745' , '100110' , 'micropu' , '2013-02-26 00:00:00.000' , '1899-12-30 14:23:20.000' , '100' , '人脸识别' )
INSERT [kqRecord] ( [Guid] , [RegisterNumber] , [Name] , [Ndate] , [Ntime] , [Nlocate] , [Mode] ) VALUES ( '29B9D364884D495E9CEE961928CD40AD' , '100110' , 'micropu' , '2013-02-26 00:00:00.000' , '1899-12-30 14:21:31.000' , '100' , '人脸识别' )
INSERT [kqRecord] ( [Guid] , [RegisterNumber] , [Name] , [Ndate] , [Ntime] , [Nlocate] , [Mode] ) VALUES ( 'AA0A5CA236D543AB888A352F58075D46' , '100110' , 'micropu' , '2013-02-25 00:00:00.000' , '1899-12-30 14:25:28.000' , '100' , '人脸识别' )
--考勤图像表
if exists (select * from sysobjects where id = OBJECT_ID('[RecordImage]') and OBJECTPROPERTY(id, 'IsUserTable') = 1) DROP TABLE [RecordImage]
CREATE TABLE [RecordImage] ( [RecordGUID] [varchar] (32) NOT NULL , [RecordImage] [image] NULL )
ALTER TABLE [RecordImage] WITH NOCHECK ADD CONSTRAINT [PK_RecordImage] PRIMARY KEY NONCLUSTERED ( [RecordGUID] )
--考勤图像表数据,太长图像部份略
INSERT [RecordImage] ( [RecordGUID] , [RecordImage] ) VALUES ( '0386620692784FD9A01E4CF43E9F8745' ,'图片数据3')
INSERT [RecordImage] ( [RecordGUID] , [RecordImage] ) VALUES ( '29B9D364884D495E9CEE961928CD40AD' ,'图片数据2')
INSERT [RecordImage] ( [RecordGUID] , [RecordImage] ) VALUES ( 'AA0A5CA236D543AB888A352F58075D46' , '图片数据1' )
--现时语句
--系统临时表
drop table ##temp
declare @s varchar(8000)
declare @s1 varchar(8000)
set @s='select convert(varchar,Ndate,23) 日期,registerNumber 注册号,name 姓名 '
set @s1 = 'select a.日期,a.注册号,a.姓名'
select @s=@s+',max(case when rn='+ltrim(rn)+' then convert(varchar,Ntime,24) end) as 打卡'+ltrim(rn)
+',max(case when rn='+ltrim(rn)+' then Guid end) as 图像'+ltrim(rn)
,@s1 = @s1 + ',a.打卡'+ltrim(rn) + ',(select RecordImage from [RecordImage] where recordGuid=a.图像'+ltrim(rn)+ ') as 图像'+ltrim(rn)
from (select distinct rn from (select rn=row_number()over(partition by registerNumber,ndate order by ndate,ntime),Ntime,Ndate from kqRecord where ndate>='2013-2-1')a)t
set @s=@s+' into ##temp from (select rn=row_number()over(partition by registerNumber,ndate order by ndate,ntime),* from kqrecord where ndate>=''2013-2-1''
) t group by ndate,registerNumber,name'
set @s1=@s1+' from ##temp a'
exec(@s)
exec(@s1)
[code=sql]select temp.姓名,temp.打卡1,(select RecordImage from RecordImage where recordGuid=temp.图像1) ig1 ,temp.打卡2,(select RecordImage from RecordImage where recordGuid=temp.图像2) ig2 from temp
现时用这句名以解决,但不知怎样改成动态的,求大家[/code]消息 8117,级别 16,状态 1,第 1 行
操作数数据类型 image 对于 max 运算符无效。
消息 208,级别 16,状态 0,第 23 行
对象名 '##temp' 无效。
--考勤记录表
if exists (select * from sysobjects where id = OBJECT_ID('[kqRecord]') and OBJECTPROPERTY(id, 'IsUserTable') = 1) DROP TABLE [kqRecord]
CREATE TABLE [kqRecord] ( [Guid] [varchar] (32) NOT NULL , [RegisterNumber] [varchar] (20) NOT NULL , [Name] [varchar] (20) NOT NULL , [Ndate] [datetime] NOT NULL , [Ntime] [datetime] NOT NULL , [Nlocate] [varchar] (3) NOT NULL , [Mode] [varchar] (8) NOT NULL )
ALTER TABLE [kqRecord] WITH NOCHECK ADD CONSTRAINT [PK_kqRecord] PRIMARY KEY NONCLUSTERED ( [Guid] )
INSERT [kqRecord] ( [Guid] , [RegisterNumber] , [Name] , [Ndate] , [Ntime] , [Nlocate] , [Mode] ) VALUES ( '0386620692784FD9A01E4CF43E9F8745' , '100110' , 'micropu' , '2013-02-26 00:00:00.000' , '1899-12-30 14:23:20.000' , '100' , '人脸识别' )
INSERT [kqRecord] ( [Guid] , [RegisterNumber] , [Name] , [Ndate] , [Ntime] , [Nlocate] , [Mode] ) VALUES ( '29B9D364884D495E9CEE961928CD40AD' , '100110' , 'micropu' , '2013-02-26 00:00:00.000' , '1899-12-30 14:21:31.000' , '100' , '人脸识别' )
INSERT [kqRecord] ( [Guid] , [RegisterNumber] , [Name] , [Ndate] , [Ntime] , [Nlocate] , [Mode] ) VALUES ( 'AA0A5CA236D543AB888A352F58075D46' , '100110' , 'micropu' , '2013-02-25 00:00:00.000' , '1899-12-30 14:25:28.000' , '100' , '人脸识别' )
--考勤图像表
if exists (select * from sysobjects where id = OBJECT_ID('[RecordImage]') and OBJECTPROPERTY(id, 'IsUserTable') = 1) DROP TABLE [RecordImage]
CREATE TABLE [RecordImage] ( [RecordGUID] [varchar] (32) NOT NULL , [RecordImage] [image] NULL )
ALTER TABLE [RecordImage] WITH NOCHECK ADD CONSTRAINT [PK_RecordImage] PRIMARY KEY NONCLUSTERED ( [RecordGUID] )
--考勤图像表数据,太长图像部份略
INSERT [RecordImage] ( [RecordGUID] , [RecordImage] ) VALUES ( '0386620692784FD9A01E4CF43E9F8745' ,图片数据3)
INSERT [RecordImage] ( [RecordGUID] , [RecordImage] ) VALUES ( '29B9D364884D495E9CEE961928CD40AD' ,图片数据2)
INSERT [RecordImage] ( [RecordGUID] , [RecordImage] ) VALUES ( 'AA0A5CA236D543AB888A352F58075D46' , 图片数据1 )
--现时语句
--系统临时表
drop table ##temp
declare @s varchar(8000)
set @s='select convert(varchar,Ndate,23) 日期,registerNumber 注册号,name 姓名 '
select @s=@s+',max(case when rn='+ltrim(rn)+' then convert(varchar,Ntime,24) end) as 打卡'+ltrim(rn)
+',max(case when rn='+ltrim(rn)+' then [RecordImage] end) as 图像'+ltrim(rn)
from (select distinct rn from (select rn=row_number()over(partition by registerNumber,ndate order by ndate,ntime),Ntime,Ndate from kqRecord where ndate>='2013-2-1')a)t
set @s=@s+' into ##temp from (select rn=row_number()over(partition by A.registerNumber,A.ndate order by A.ndate,A.ntime)
,A.*, B.[RecordImage]
from kqrecord A LEFT JOIN [RecordImage] B
ON A.[Guid] = B.[RecordGUID]
where A.ndate>=''2013-2-1''
) t group by ndate,registerNumber,name'
exec(@s)
--update ##temp
select * from ##temp
--考勤记录表
if exists (select * from sysobjects where id = OBJECT_ID('[kqRecord]') and OBJECTPROPERTY(id, 'IsUserTable') = 1) DROP TABLE [kqRecord]
CREATE TABLE [kqRecord] ( [Guid] [varchar] (32) NOT NULL , [RegisterNumber] [varchar] (20) NOT NULL , [Name] [varchar] (20) NOT NULL , [Ndate] [datetime] NOT NULL , [Ntime] [datetime] NOT NULL , [Nlocate] [varchar] (3) NOT NULL , [Mode] [varchar] (8) NOT NULL )
ALTER TABLE [kqRecord] WITH NOCHECK ADD CONSTRAINT [PK_kqRecord] PRIMARY KEY NONCLUSTERED ( [Guid] )
INSERT [kqRecord] ( [Guid] , [RegisterNumber] , [Name] , [Ndate] , [Ntime] , [Nlocate] , [Mode] ) VALUES ( '0386620692784FD9A01E4CF43E9F8745' , '100110' , 'micropu' , '2013-02-26 00:00:00.000' , '1899-12-30 14:23:20.000' , '100' , '人脸识别' )
INSERT [kqRecord] ( [Guid] , [RegisterNumber] , [Name] , [Ndate] , [Ntime] , [Nlocate] , [Mode] ) VALUES ( '29B9D364884D495E9CEE961928CD40AD' , '100110' , 'micropu' , '2013-02-26 00:00:00.000' , '1899-12-30 14:21:31.000' , '100' , '人脸识别' )
INSERT [kqRecord] ( [Guid] , [RegisterNumber] , [Name] , [Ndate] , [Ntime] , [Nlocate] , [Mode] ) VALUES ( 'AA0A5CA236D543AB888A352F58075D46' , '100110' , 'micropu' , '2013-02-25 00:00:00.000' , '1899-12-30 14:25:28.000' , '100' , '人脸识别' )
--考勤图像表
if exists (select * from sysobjects where id = OBJECT_ID('[RecordImage]') and OBJECTPROPERTY(id, 'IsUserTable') = 1) DROP TABLE [RecordImage]
CREATE TABLE [RecordImage] ( [RecordGUID] [varchar] (32) NOT NULL , [RecordImage] [image] NULL )
ALTER TABLE [RecordImage] WITH NOCHECK ADD CONSTRAINT [PK_RecordImage] PRIMARY KEY NONCLUSTERED ( [RecordGUID] )
--考勤图像表数据,太长图像部份略
INSERT [RecordImage] ( [RecordGUID] , [RecordImage] ) VALUES ( '0386620692784FD9A01E4CF43E9F8745' ,图片数据3)
INSERT [RecordImage] ( [RecordGUID] , [RecordImage] ) VALUES ( '29B9D364884D495E9CEE961928CD40AD' ,图片数据2)
INSERT [RecordImage] ( [RecordGUID] , [RecordImage] ) VALUES ( 'AA0A5CA236D543AB888A352F58075D46' , 图片数据1 )
--现时语句
--系统临时表
drop table ##temp
declare @s varchar(8000)
set @s='select convert(varchar,Ndate,23) 日期,registerNumber 注册号,name 姓名 '
select @s=@s+',max(case when rn='+ltrim(rn)+' then convert(varchar,Ntime,24) end) as 打卡'+ltrim(rn)
+',max(case when rn='+ltrim(rn)+' then Guid end) as 图像'+ltrim(rn)
from (select distinct rn from (select rn=row_number()over(partition by registerNumber,ndate order by ndate,ntime),Ntime,Ndate from kqRecord where ndate>='2013-2-1')a)t
set @s=@s+' into ##temp from (select rn=row_number()over(partition by registerNumber,ndate order by ndate,ntime),* from kqrecord where ndate>=''2013-2-1''
) t group by ndate,registerNumber,name'
exec(@s)
--update ##temp
select * from ##temp
--结果
日期 注册号 姓名 打卡1 图像1 打卡2 图像2
2013-02-25 100110 micropu 14:25:28 AA0A5CA236D543AB888A352F58075D46 NULL NULL
2013-02-26 100110 micropu 14:21:31 29B9D364884D495E9CEE961928CD40AD 14:23:20 0386620692784FD9A01E4CF43E9F8745
--想得到的结果就是将图像1、图像2 的值更新为 kqimage中对应的图像值
--