永发信息网

SQL如何将多行数据合并到一行

答案:1  悬赏:10  手机版
解决时间 2021-05-18 10:49

如题,需要将员工的一年的工资表显示出来, 已通过表关系查询到员工每月的工资情况,现在需要对每个员工的工资进行合并到另外一张临时表中  每员工一条记录 记录了每月的工资,现在问题是 如何将已得到的工资记录 合并到另外一张表中去 见图

第二张表中的 1--12是对应每月的工资

现在我是通过存储过程来处理的 但是却不知道如果合并 望各位达人帮帮忙  附上存储过程

create proc GetuserPay
 @sj char(4),@user varchar(20)
 as
 declare @uid varchar(30),@name varchar(50)
 create table #tempuser(uid varchar(30),name varchar(50),sj datetime,pay decimal(9,2))
 insert into #tempuser select distinct(g.username),u.usernames,riqi,pay
  from GongZi g join user_user u on u.username=g.username where convert(varchar,riqi,120) like (Select Convert(Varchar(7),
  '2008',120))+'%'
 select * from #tempuser
 create table #monthlist(uid varchar(30),m1 decimal(9,2),m2 decimal(9,2),m3 decimal(9,2),m4 decimal(9,2),m5 decimal(9,2),
  m6 decimal(9,2),m7 decimal(9,2),m8 decimal(9,2),m9 decimal(9,2),m10 decimal(9,2),m11 decimal(9,2),m12 decimal(9,2))
go

最佳答案
declare @t table(name varchar(10), time varchar(20), pay int)
insert @t
select 'admin', '2010-01', 5 union all
select 'admin', '2010-02', 90 union all
select 'admin', '2010-03', 45 union all
select 'admin', '2010-04', 45 union all
select 'admin', '2010-05', 45 union all
select 'admin', '2010-06', 34 union all
select 'admin', '2010-07', 23 union all
select 'wx', '2010-04', 90 union all
select 'wx', '2010-09', 100 union all
select 'wx', '2010-12', 500

select name,
coalesce([2010-01], 0) as [1], coalesce([2010-02], 0) as [2],
coalesce([2010-03], 0) as [3], coalesce([2010-04], 0) as [4],
coalesce([2010-05], 0) as [5], coalesce([2010-06], 0) as [6],
coalesce([2010-07], 0) as [7], coalesce([2010-08], 0) as [8],
coalesce([2010-09], 0) as [9], coalesce([2010-10], 0) as [10],
coalesce([2010-11], 0) as [11], coalesce([2010-12], 0) as [12]
from
(select * from @t) as source
pivot
(
    sum(pay) for time in
    (
        [2010-01], [2010-02], [2010-03], [2010-04],
        [2010-05], [2010-06], [2010-07], [2010-08],
        [2010-09], [2010-10], [2010-11], [2010-12]
    )
) as pvt


用pivot可以做,不过有点死板
等吃过饭我帮你写个存储过程试试
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
我有个哥哥、长的咋样我不知、但老有女生为他
在哪里能下载快节奏的现代舞教学视频(本人男)
蜜蜂群最喜欢去什么地方
1988年农历1月1日生的是什么命
委差委比是什么意思,换手是指什么,委比,委
潜江市潜江锦江宾馆(三江路)地址在哪里啊
我觉得帅哥美女只是用来看的,你们说对吗?
三星SGH-818手机如何与电脑连接?为什么每次与
泰州哪里有清蒸饼卖
怎样禁止别人用笔记本无线网络连接设备连接自
富裕县齐齐哈尔富裕县益民垃圾处理公司这个地
用手机怎样查我有多少Q币?
穿越火线体验服现在还在发CF点吗?什么时候发
东二风衣,紫金肩,墨竹,加0都多钱?加10的
加在千层饼上面的酱。是锦珍豆瓣酱和那一种酱
推荐资讯
鼎城区常德中国联通(渡槽营业厅)哪位知道具体
抚远市佳木斯三星授权服务中心(抚远县正阳手
武汉哪的东西好吃
为何爱一个人那么痛苦
求散人玩的网游,~!
春节期间防火短信,春节森林防火短信 学校
有什么办法可以赚更多的钱呢?
父亲总是埋怨,驱赶了逆流。这句话是什么意思
海阔天空,沧海桑田下一句是什么
属马的人家中养什么花最合适
比较好的有意义诗句,求关于月亮的古诗词,最
爱国思想的唐诗,古诗阅读,完成下面题目望岳
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?