*********************************************************************************
其中select ywlm,sz from bd_sbsxbjg where cjbh='' and xxflbh=''一句可以查询到
fuzaisunhao jiexianzubie zongzhong三个字段名以及对应的值即返回结果如下:fuzaisunhao 12
jiexianzubie 24
zongzhong 36
**********************************************************************************
上面的应该只能查到两个值吧。
楼主用下面的语句试试。注意修改???的地方。
insert into SB_XHXQ_BJ_XDJ1_300_10(sbbh,fuzaisunhao,jiexianzubie,zongzhong)
select sbbh,ywlm,sz,???
from SB_XHXQ_XDJ1_300_10 a,bd_sbsxbjg b
where b.cjbh='106D96D26DCcb13C60CB' and b.xxflbh='106D96C39BDca1C72349'
其中select ywlm,sz from bd_sbsxbjg where cjbh='' and xxflbh=''一句可以查询到
fuzaisunhao jiexianzubie zongzhong三个字段名以及对应的值即返回结果如下:fuzaisunhao 12
jiexianzubie 24
zongzhong 36
**********************************************************************************
上面的应该只能查到两个值吧。
楼主用下面的语句试试。注意修改???的地方。
insert into SB_XHXQ_BJ_XDJ1_300_10(sbbh,fuzaisunhao,jiexianzubie,zongzhong)
select sbbh,ywlm,sz,???
from SB_XHXQ_XDJ1_300_10 a,bd_sbsxbjg b
where b.cjbh='106D96D26DCcb13C60CB' and b.xxflbh='106D96C39BDca1C72349'
bd_sbsxbjg表的结构是这样的:
cjbh xxflbh ywlm sz <---列名
... ... fuzaisunhao 12
... ... jiexianzubie 24
... .. zongzhong 36
因为fuzaisunhao jiexianzubie zongzhong三个值又是另外一张表的字段名,所以我才这样说的,抱歉不知道是否能说明这个问题select ywlm,sz from bd_sbsxbjg where cjbh='' and xxflbh=''一句可以查询到
fuzaisunhao jiexianzubie zongzhong三个字段名以及对应的值即返回结果如下:
fuzaisunhao 12
jiexianzubie 24
zongzhong 36下面是我在存储过程中又加上去的一些内容,但有语法错误
declare @curS varchar(20),@tStr varchar(1000),@vStr varchar(1000)
set @tStr = 'insert into SB_XHXQ_BJ_XDJ1_300_10(sbbh,'
set @vStr = ') values('
declare curSbbh cursor for select sbbh from SB_XHXQ_XDJ1_300_10
open curSbbh
fetch curSbbh into @curS
while @@FETCH_STATUS = 0
begin
--给新表插入值
@vStr += ''+@curS+''--这里语法有错,目的是相当于追加字符串而已
declare @ywlm varchar(100),@sz varchar(1000)
declare curYwlmSz cursor for select ywlm,sz from bd_sbsxbjg where cjbh='' and xxflbh=''
open curYwlmSz
fetch next from curYwlmSz into @ywlm,@sz
while @@FETCH_STATUS =0
begin
--组织insert语句并赋值
@tStr +=''+@ywlm+''--这里语法有错
@vStr += ''+@sz+'' --这里语法有错
fetch next from curYwlmSz into @ywlm,@sz
end
exec(@tStr +''+vStr+')')
close curYwlmSz
deallocate curYwlmSz
fetch next from curSbbh into @curS
end
close curSbbh
deallocate curSbbh
GO
create table SB_XHXQ_XDJ1_300_10(sbbh varchar(50),edingdianya int)
insert into SB_XHXQ_XDJ1_300_10 select '106ECBF4047161827AB2',10
insert into SB_XHXQ_XDJ1_300_10 select '106ECBFC8FF1713728DD',10create table bd_sbsxbjg(cjbh varchar(20),xxflbh varchar(20),ywlm varchar(20),sz int)
insert into bd_sbsxbjg select '106D96D26DCcb13C60CB','106D96C39BDca1C72349',rtrim('fuzaisunhao '),12
insert into bd_sbsxbjg select '106D96D26DCcb13C60CB','106D96C39BDca1C72349',rtrim('jiexianzubie'),24
insert into bd_sbsxbjg select '106D96D26DCcb13C60CB','106D96C39BDca1C72349',rtrim('zongzhong '),36create table SB_XHXQ_BJ_XDJ1_300_10(sbbh varchar(50),fuzaisunhao varchar(50),jiexianzubie varchar(50),zongzhong varchar(50))
--执行处理过程
declare @curS varchar(20),@s1 varchar(8000),@s2 varchar(8000)declare curSbbh cursor for
select sbbh from SB_XHXQ_XDJ1_300_10open curSbbh
fetch next from curSbbh into @curSwhile @@FETCH_STATUS = 0
begin
set @s1=''
set @s2=''
select
@s1=@s1+','+ywlm,
@s2=@s2+','+rtrim(sz)
from
bd_sbsxbjg
where
cjbh='106D96D26DCcb13C60CB' and xxflbh='106D96C39BDca1C72349'
set @s1='insert into SB_XHXQ_BJ_XDJ1_300_10(sbbh'+@s1+') values('''+@curS+''''+@s2+')'
print @s1
exec(@s1)
fetch next from curSbbh into @curS
end
close curSbbh
deallocate curSbbh--查看执行结果
select * from SB_XHXQ_BJ_XDJ1_300_10
/*
sbbh fuzaisunhao jiexianzubie zongzhong
---------------------- ------------- ------------- -----------
106ECBF4047161827AB2 12 24 36
106ECBFC8FF1713728DD 12 24 36
*/--删除测试环境
drop table SB_XHXQ_BJ_XDJ1_300_10,bd_sbsxbjg,SB_XHXQ_XDJ1_300_10
正是我要解决的问题 由于对存储过程的语法不是很熟悉所以常犯错误
我还担心问题说不清楚呢 真的很感激你的多次帮助