declare @nvsql varchar(100)
set @nvsql='select id '
set @nvsql=@nvsql+' name,parent, isnull(convert(varchar(10),time1,120),0) as time ,depth from t'
exec (@nvsql)
print @nvsql
參考。
set @nvsql='select id '
set @nvsql=@nvsql+' name,parent, isnull(convert(varchar(10),time1,120),0) as time ,depth from t'
exec (@nvsql)
print @nvsql
參考。
這裡應該就錯了
create PROCEDURE proGetXS
AS
SET NOCOUNT ON
declare @sql varchar(8000)
set @sql = 'select a.规格'
select @sql =@sql+ ',''正式:'' + cast( isnull(sum(case when b.id=' + cast(c.id as varchar) + ' then 系数 end),'') as varchar) ['+ c.工序 + ']'
from (select id,工序 from 工序表 ) as c
select @sql = @sql+' from 规格表 a
left join 系数表 b on a.id=b.规格id
group by a.id,a.规格'
--exec(@sql)
select @sql
去掉 +''返工:'' + +cast(isnull(sum(case when b.id=' + cast(c.id as varchar) + ' then 返工系数 end),'') as varchar)这个后就不出错!
create PROCEDURE proGetXS
AS
SET NOCOUNT ON
declare @sql varchar(8000)
set @sql = 'select a.规格'
select @sql =@sql+ ',isnull(sum(case when b.id=' + cast(c.id as varchar) + ' then 系数 end),'') ['+ c.工序 + ']'
from (select id,工序 from 工序表 ) as c
select @sql = @sql+' from 规格表 a
left join 系数表 b on a.id=b.规格id
group by a.id,a.规格'
exec(@sql)
-------------------------------------------------------------------------------
create PROCEDURE proGetXS
AS
SET NOCOUNT ON
declare @sql varchar(8000)
set @sql = 'select a.规格'
select
@sql = @sql+
',''正式:''+cast(isnull(sum(case when b.id='+cast(c.id as varchar)+' then 系数 end),'''') as varchar)
+''返工:''+cast(isnull(sum(case when b.id='+cast(c.id as varchar)+' then 返工系数 end),'''') as varchar) ['+ c.工序 + ']'
from
(select id,工序 from 工序表) c
select @sql = @sql+' from 规格表 a left join 系数表 b on a.id=b.规格id group by a.id,a.规格'
exec(@sql)
GO