if OBJECT_ID('T_ETL_PCodeCalCoee') is not null
drop table T_ETL_PCodeCalCoee
go
create table T_ETL_PCodeCalCoee
(
Mfgdate nvarchar (4000),
mfgweek nvarchar (4000) ,
mfgmonth nvarchar (4000),
mfgyear nvarchar (4000),
mfgQuarter nvarchar (4000),
Coeetarget decimal(18,2),
CoeeTargetExcludeIdle decimal(18,2),
coee decimal(18,2),
coeeExcludeIdle decimal(18,2),
Mtdcoee decimal(18,2),
MtdcoeeExcludeIdle decimal(18,2) )insert into T_ETL_PCodeCalCoee values ('2011/8/1','W01','8','2011','3',72,80,70,79,70,79)
insert into T_ETL_PCodeCalCoee values ('2011/8/2','W02','8','2011','3',15,80,71,77,71,77)
insert into T_ETL_PCodeCalCoee values ('2011/8/3','W03','8','2011','3',889,80,72,77,72,77)
insert into T_ETL_PCodeCalCoee values ('2011/8/4','W04','8','2011','3',785,80,73,78,73,78)
insert into T_ETL_PCodeCalCoee values ('2011/8/5','W05','8','2011','3',734,80,74,79,74,79)
insert into T_ETL_PCodeCalCoee values ('2011/8/6','W06','8','2011','3',3435,80,70,78,70,78)
insert into T_ETL_PCodeCalCoee values ('2011/8/7','W07','8','2011','3',45,80,71,77,71,77)
insert into T_ETL_PCodeCalCoee values ('2011/8/8','W02','8','2011','3',76,80,71,77,71,77)
insert into T_ETL_PCodeCalCoee values ('2011/8/9','W02','8','2011','3',87,80,72,77,72,77)
insert into T_ETL_PCodeCalCoee values ('2011/8/10','W02','8','2011','3',98,80,73,77,73,77)
select * from T_ETL_PCodeCalCoee
----------------重点在这里---------------我怎么看不到结果
declare @sql1 nvarchar(4000)
select @sql1 = @sql1 + 'max(case Mfgdate when ''' + Mfgdate + ''' then Coeetarget else 0 end) [' + Mfgdate + ']'
from (select distinct Mfgdate from T_ETL_PCodeCalCoee) as a
exec sp_executesql @sql1
print @sql1 ----------------我 print 定义的@sql 语句,为何看不到结果---------------我怎么看不到结果
解决方案 »
- 问下如何在这个ACTION方法传参数给监听器呢???
- PD中如何做逆向工程
- 请教,会员登陆表中,最近一个月中会员登陆记录中,中间有超过五天没有登陆会员
- C++ 怎样同时连接两个远程服务器上的SQL数据库
- 新手的一个问题:关于select查询的
- 优化sql
- 问个菜鸟的问题
- 我的ODBC中没有MS SQL SERVER的连接,怎么添加进去啊?难道非要装SQL SERVER?
- 你怎么看待数据库二维表的设计!重要,不重要,还是数据库中其他设计更重要?
- 删除SQl server数据库中某张表的某个字段为重复值的记录的SQL语句如何写?
- 大牛们支个招.考勤打卡怎么判断该时间是上班时间还是下班时间
- sql server2000创建外键问题
select @sql1 = isnull(@sql1,'') + 'max(case Mfgdate when ''' + Mfgdate + ''' then Coeetarget else 0 end) [' + Mfgdate + ']'
go
create table T_ETL_PCodeCalCoee
(
Mfgdate nvarchar (4000),
mfgweek nvarchar (4000) ,
mfgmonth nvarchar (4000),
mfgyear nvarchar (4000),
mfgQuarter nvarchar (4000),
Coeetarget decimal(18,2),
CoeeTargetExcludeIdle decimal(18,2),
coee decimal(18,2),
coeeExcludeIdle decimal(18,2),
Mtdcoee decimal(18,2),
MtdcoeeExcludeIdle decimal(18,2) )insert into T_ETL_PCodeCalCoee values ('2011/8/1','W01','8','2011','3',72,80,70,79,70,79)
insert into T_ETL_PCodeCalCoee values ('2011/8/2','W02','8','2011','3',15,80,71,77,71,77)
insert into T_ETL_PCodeCalCoee values ('2011/8/3','W03','8','2011','3',889,80,72,77,72,77)
insert into T_ETL_PCodeCalCoee values ('2011/8/4','W04','8','2011','3',785,80,73,78,73,78)
insert into T_ETL_PCodeCalCoee values ('2011/8/5','W05','8','2011','3',734,80,74,79,74,79)
insert into T_ETL_PCodeCalCoee values ('2011/8/6','W06','8','2011','3',3435,80,70,78,70,78)
insert into T_ETL_PCodeCalCoee values ('2011/8/7','W07','8','2011','3',45,80,71,77,71,77)
insert into T_ETL_PCodeCalCoee values ('2011/8/8','W02','8','2011','3',76,80,71,77,71,77)
insert into T_ETL_PCodeCalCoee values ('2011/8/9','W02','8','2011','3',87,80,72,77,72,77)
insert into T_ETL_PCodeCalCoee values ('2011/8/10','W02','8','2011','3',98,80,73,77,73,77) ----------------重点在这里---------------我怎么看不到结果
declare @sql1 nvarchar(4000)
select @sql1 = isnull(@sql1+',','') + ' max(case Mfgdate when ''' + Mfgdate + ''' then Coeetarget else 0 end) [' + Mfgdate + ']'
from (select distinct Mfgdate from T_ETL_PCodeCalCoee) as a
exec ('select '+ @sql1+'from T_ETL_PCodeCalCoee')
/*
2011/8/1 2011/8/10 2011/8/2 2011/8/3 2011/8/4 2011/8/5 2011/8/6 2011/8/7 2011/8/8 2011/8/9
--------------------------------------- --------------------------------------- --------------------------------------- --------------------------------------- --------------------------------------- --------------------------------------- --------------------------------------- --------------------------------------- --------------------------------------- ---------------------------------------
72.00 98.00 15.00 889.00 785.00 734.00 3435.00 45.00 76.00 87.00(1 行受影响)*/
set @sql1 = 'select mfgmonth '
select @sql1 = @sql1 + 'max(case Mfgdate when ''' + Mfgdate + ''' then Coeetarget else 0 end) [' + Mfgdate + ']'
from (select distinct Mfgdate from T_ETL_PCodeCalCoee) as a
set @sql1 = @sql1 + ' from T_ETL_PCodeCalCoee group by mfgmonth'
print @sql1
exec (@sql1)[Quote=引用 2 楼 qianguohua 的回复:]
引用 1 楼 qianjin036a 的回复:这样,你就能看到了:
SQL code
select @sql1 = isnull(@sql1,'') + 'max(case Mfgdate when ''' + Mfgdate + ''' then Coeetarget else 0 end) [' + Mfgdate + ']'能否写的具体点,菜鸟,新手
[/Quote]
set @sql1 = 'select mfgmonth '
select @sql1 = @sql1 + ',max(case Mfgdate when ''' + Mfgdate + ''' then Coeetarget else 0 end) [' + Mfgdate + ']'
from (select distinct Mfgdate from T_ETL_PCodeCalCoee) as a
set @sql1 = @sql1 + ' from T_ETL_PCodeCalCoee group by mfgmonth'
print @sql1
exec (@sql1)
/*
mfgmonth,2011/8/1,2011/8/10,2011/8/2,2011/8/3,2011/8/4,2011/8/5,2011/8/6,2011/8/7,2011/8/8,2011/8/9
8,72.00,98.00,15.00,889.00,785.00,734.00,3435.00,45.00,76.00,87.00(1 行受影响)
create table T_ETL_PCodeCalCoee
(
Mfgdate nvarchar (100),
mfgweek nvarchar (100) ,
mfgmonth nvarchar (100),
mfgyear nvarchar (100),
mfgQuarter nvarchar (100),
Coeetarget decimal(18,2),
CoeeTargetExcludeIdle decimal(18,2),
coee decimal(18,2),
coeeExcludeIdle decimal(18,2),
Mtdcoee decimal(18,2),
MtdcoeeExcludeIdle decimal(18,2) )insert into T_ETL_PCodeCalCoee values ('2011/8/1','W01','8','2011','3',72,80,70,79,70,79)
insert into T_ETL_PCodeCalCoee values ('2011/8/2','W02','8','2011','3',15,80,71,77,71,77)
insert into T_ETL_PCodeCalCoee values ('2011/8/3','W03','8','2011','3',889,80,72,77,72,77)
insert into T_ETL_PCodeCalCoee values ('2011/8/4','W04','8','2011','3',785,80,73,78,73,78)
insert into T_ETL_PCodeCalCoee values ('2011/8/5','W05','8','2011','3',734,80,74,79,74,79)
insert into T_ETL_PCodeCalCoee values ('2011/8/6','W06','8','2011','3',3435,80,70,78,70,78)
insert into T_ETL_PCodeCalCoee values ('2011/8/7','W07','8','2011','3',45,80,71,77,71,77)
insert into T_ETL_PCodeCalCoee values ('2011/8/8','W02','8','2011','3',76,80,71,77,71,77)
insert into T_ETL_PCodeCalCoee values ('2011/8/9','W02','8','2011','3',87,80,72,77,72,77)
insert into T_ETL_PCodeCalCoee values ('2011/8/10','W02','8','2011','3',98,80,73,77,73,77)select * from T_ETL_PCodeCalCoee
----------------重点在这里---------------我怎么看不到结果
declare @sql1 varchar(4000)
set @sql1 = 'select mfgweek '
select @sql1 = @sql1 + ' , max(case Mfgdate when ''' + Mfgdate + ''' then Coeetarget else 0 end) [' + Mfgdate + ']'
from (select distinct Mfgdate from T_ETL_PCodeCalCoee) as a
set @sql1 = @sql1 + ' from T_ETL_PCodeCalCoee group by mfgweek'
exec (@sql1)
print @sql1drop table T_ETL_PCodeCalCoee/*
mfgweek 2011/8/1 2011/8/10 2011/8/2 2011/8/3 2011/8/4 2011/8/5 2011/8/6 2011/8/7 2011/8/8 2011/8/9
---------------------------------------------------------------------------------------------------- -------------------- -------------------- -------------------- -------------------- -------------------- -------------------- -------------------- -------------------- -------------------- --------------------
W01 72.00 .00 .00 .00 .00 .00 .00 .00 .00 .00
W02 .00 98.00 15.00 .00 .00 .00 .00 .00 76.00 87.00
W03 .00 .00 .00 889.00 .00 .00 .00 .00 .00 .00
W04 .00 .00 .00 .00 785.00 .00 .00 .00 .00 .00
W05 .00 .00 .00 .00 .00 734.00 .00 .00 .00 .00
W06 .00 .00 .00 .00 .00 .00 3435.00 .00 .00 .00
W07 .00 .00 .00 .00 .00 .00 .00 45.00 .00 .00
*/
set @sql1 = 'select mfgmonth '
select @sql1 = @sql1 + ',max(case Mfgdate when ''' + Mfgdate + ''' then Coeetarget else 0 end) [' + Mfgdate + ']'
from (select distinct Mfgdate from T_ETL_PCodeCalCoee) as a
set @sql1 = @sql1 + ' from T_ETL_PCodeCalCoee group by mfgmonth'
print @sql1
exec (@sql1)
/*
mfgmonth,2011/8/1,2011/8/10,2011/8/2,2011/8/3,2011/8/4,2011/8/5,2011/8/6,2011/8/7,2011/8/8,2011/8/9
8,72.00,98.00,15.00,889.00,785.00,734.00,3435.00,45.00,76.00,87.00(1 行受影响)