请SQL高手帮忙:如何从一个表中复制列名和数据,到另一个表创建该列名并复制数据?
请SQL高手帮忙解决:
我现在有一个表tableA,里面的字段是kid,kbh,kname等列名,另外有表table1,字段有kid,kbh,f_je等字段,还有相同字段的表table2,table3,table4,字段和table1一样,都是kid,kbh,f_je等字段,现在我要显示的是,tableA 的kid,kbh, ,kname统计table1的 f_je(金额),table2的f_je(金额),table3的f_je(金额),table4的f_je(金额),需要说明的是,每个表的kid,kbh字段是相关联的。
模拟效果如下:
------------------------------------------------------------
kid kbh kname f_je1 f_je2 f_je3 f_je4
1007 k001 百货公司 200 0 10 0
1012 k005 店铺 0 150 0 300
1003 k016 专柜 0 0 280 160
------------------------------------------------------------
请帮忙解决,谢谢!
我的用一下存储过程,得不到想要的结果:
-------------------------------------------------------------------
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
ALTER procedure [pro_fylist]
@kid nvarchar(10)
as
declare @strSql nvarchar(4000)
set @strSql=''
set @strSql = '
select z.kid, SUM(a.f_je) AS f_je1 into #k FROM tableA AS z INNER JOIN table1 AS a
ON z.kbh = a.kbh and z.kid = a.kid group by kid
ALTER table #k ADD f_je1 real NULL
insert into #k(SUM(b.f_je)as f_je1) select b.f_je from tableA AS z INNER JOIN table1 AS b
ON z.kbh = b.kbh and z.kid = b.kid group by z.kid,b.f_je
ALTER table #k ADD f_je2 real NULL
insert into #k(SUM(c.f_je)as f_je2) select b.f_je from tableA AS z INNER JOIN table2 AS c
ON z.kbh = c.kbh and z.kid = c.kid group by z.kid,c.f_je
ALTER table #k ADD f_je3 real NULL
insert into #k(SUM(d.f_je)as f_je3) select b.f_je from tableA AS z INNER JOIN table3 AS d
ON z.kbh = b.kbh and z.kid = d.kid group by z.kid,d.f_je
ALTER table #k ADD f_je4 real NULL
insert into #k(SUM(e.f_je)as f_je4) select b.f_je from tableA AS z INNER JOIN table1 AS e
ON z.kbh = e.kbh and z.kid = e.kid group by z.kid,e.f_je
select
z.kid, z.kname, z.kbh, f_je1,f_je2,f_je3,f_je4
from tableA AS z INNER JOIN #k AS k ON z.kid = k.kid
drop table #k
'
print @strSql
EXEC SP_EXECUTESQL @strSql
---------------------------------------------------------------
语句这段出错:ALTER table #k ADD f_je1 real NULL
insert into #k(SUM(b.f_je)as f_je1) select b.f_je from tableA AS z INNER JOIN table1 AS b
ON z.kbh = b.kbh and z.kid = b.kid group by z.kid,b.f_je
提示错误信息:‘(’附近有语法错误。