版主大人,各位大哥帮帮忙

qq_26006573 2018-12-12 03:59:53

查询结果成这样.版主大哥们帮帮忙谢谢!!!

部门名称 人员姓名 10月份 11月份 12月份 合计
人事部 张三 0 0 400 400
技术部 李四 0 0 300 300
合计: 0 0 700 700

表名 xfmx

姓名 部门 消费金额 消费日期
name buname xfjr xfri

create table xfmx
(
name varchar(20),

buname varchar(30),

xfjr int,

xfri datetime
)
GO
insert xfmx values('张三','人事部',200,'2018-12-12 17:00:00')
GO
insert xfmx values('张三','人事部',200,'2018-12-12 17:11:00')
GO
insert xfmx values('李四','技术部',300,'2018-12-12 19:00:00')
GO
...全文
41 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Dear SQL(燊) 2018-12-12
  • 打赏
  • 举报
回复
插入了重复数所据
Dear SQL(燊) 2018-12-12
  • 打赏
  • 举报
回复
create table xfmx
(
  name varchar(20),
  
  buname varchar(30),

  xfjr int,
  
  xfri datetime
)
GO
insert xfmx values('张三','人事部',200,'2018-12-12 17:00:00')
GO
insert xfmx values('张三','人事部',200,'2018-12-12 17:11:00')
GO
insert xfmx values('李四','技术部',300,'2018-12-12 19:00:00')


select name,buname,[201810],[201811],[201812],合计=isnull([201810],0)+isnull([201811],0)+isnull([201812],0)
from (
	select name,buname,xfjr,xfri=convert(varchar(6),xfri,112),mark=1
	from xfmx
	union all
	select name=null,'合计',xfjr,xfri=convert(varchar(6),xfri,112),mark=2
	from xfmx
	) a pivot(sum(xfjr) for xfri in([201810],[201811],[201812]))pt
order by mark

name                 buname                         201810      201811      201812      合计
-------------------- ------------------------------ ----------- ----------- ----------- -----------
李四                   技术部                            NULL        NULL        600         600
张三                   人事部                            NULL        NULL        800         800
NULL                 合计                             NULL        NULL        1400        1400

二月十六 2018-12-12
  • 打赏
  • 举报
回复
10月份和11月份是怎么算的?当前月的前两个月?

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧