日期:2014-05-17  浏览次数:20597 次

一维转二维类型错误
以下是表格内容:

ID StaffID Staff week workday         worktime Department Jude
1 200003 張三 5 2013-8-19 7:30:00         車間          1
2 200003 張三 5 2013-8-19 12:05:00 車間          2
3 200003 張三 5 2013-8-19 13:44:00 車間          3
4 200003 張三 5 2013-8-19 17:33:00 車間          4
5 200003 張三 5 2013-8-19 18:45:00 車間          5
6 200003 張三 5 2013-8-19 20:20:00 車間          6
7 200003 張三 5 2013-8-19 20:21:00 車間          0
8 200004 李四 5 2013-8-19 7:24:00     車間          1
9 200004 李四 5 2013-8-19 12:15:00 車間          2
10 200004 李四 5 2013-8-19 13:54:00 車間         11
11 200004 李四 5 2013-8-19 17:43:00 車間          4
12 200004 李四 5 2013-8-19 18:35:00 車間          5
13 200004 李四 5 2013-8-19 20:10:00 車間          6
14 200004 李四 5 2013-8-19 20:20:00 車間          0
表格设计:
ID      int 4
StaffID      varchar 12
Staff      varchar 20
week      int 4
workday      datetime 8
worktime     datetime 8
Department   varchar 20
Jude      varchar 2
一维转二维代码:

declare @sql varchar(8000) 

set @sql='select StaffID,Staff,Convert(Varchar(10),workday,120),Convert(Varchar(10),worktime,108)' 

select @sql=@sql+',['+dd+']=max(case Jude  when '''+dd+''' then Convert(Varchar(10),worktime,108) else 0 end)'

from (select distinct dd=Jude from Attendance) ss

set @sql=@sql+' from Attendance group by StaffID,Staff,Convert(Varchar(10),workday,120),Convert(Varchar(10),worktime,108)' 
exec(@sql)

Syntax error converting the varchar value '07:30:00' to a column of data type int.


执行后错误:

Syntax error converting the varchar value '07:30:00' to a column of data type int.
打印该语句如下: