中易网

SQL SERVER中如何将一列的值变成另一张表的字段

答案:2  悬赏:60  
解决时间 2021-04-27 20:13
  • 提问者网友:护她一生,唯爱
  • 2021-04-27 11:15
SQL SERVER中如何将一列的值变成另一张表的字段
最佳答案
  • 二级知识专家网友:闲懒诗人
  • 2021-04-27 12:02
将A表新建一个列
复制B表的数据到新建的列
insert into A.某列 as select 列 from B
全部回答
  • 1楼网友:晨与橙与城
  • 2021-04-27 12:13
创建表数据 create table test (部门 varchar(10), 客户 varchar(10), 费用名称 varchar(10), 金额 int) insert into test values ('a','a','手机费',10) insert into test values ('a','a','办公费',11) insert into test values ('a','a','公交费',9) insert into test values ('a','b','手机费',10) insert into test values ('a','b','办公费',10) insert into test values ('a','c','公交费',10) insert into test values ('b','d','手机费',10) insert into test values ('b','d','办公费',11) insert into test values ('b','e','公交费',9) insert into test values ('b','f','手机费',10) insert into test values ('b','f','办公费',10) insert into test values ('b','f','公交费',10)  运行 declare @sql varchar(4000) set @sql = 'select [部门],[客户]' select @sql = @sql + ',sum(isnull(case [费用名称] when '''+[费用名称]+''' then [金额] end,0)) as  ['+[费用名称]+']' from (select distinct [费用名称] from [test]) as a select @sql = @sql+' from [test] group by [部门],[客户]' exec(@sql) 结果   说明,以上适用于sqlserver,这个适用于费用名称不确定的情况,如果你费用名称确定的话,可以这样 select 部门,客户, sum(case when 费用名称='办公费' then 金额 else 0 end) 办公费, sum(case when 费用名称='公交费' then 金额 else 0 end) 公交费, sum(case when 费用名称='手机费' then 金额 else 0 end) 手机费 from test group by 部门,客户 这个语句基本所有数据库适用
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息