将满足条件的行,进行分组并将其中一列的字符串数据进行合并。
时间:2011-11-28
来源:互联网
建立表如下:
CREATE TABLE [dbo].[A世界8月原始考勤$](
[人员编号] [nvarchar](255) COLLATE Chinese_PRC_CI_AS NULL,
[姓名] [nvarchar](255) COLLATE Chinese_PRC_CI_AS NULL,
[考勤日期] [nvarchar](255) COLLATE Chinese_PRC_CI_AS NULL,
[考勤记录核算] [float] NULL,
[迟到] [float] NULL,
[早退] [float] NULL,
[早晨未打卡] [float] NULL,
[下午未打卡] [float] NULL
) ON [PRIMARY]
如
select 人员编号,姓名
,sum([001]) as 迟到
from dbo.考勤记录明细$
group by 人员编号,姓名
想通过查询实现如下所示:
员工编码 姓名 考勤次数 迟到次数 迟到日期
DY31721 蔡青 24.5 3 2011-08-11,2011-08-19,2011-08-31
DY31722 刘青 23.5 1 2011-08-11
DY31723 马伶 21.5 2 2011-08-11,2011-08-30
实现思路
select 人员编号,姓名,sum(迟到) as 迟到次数 from 考勤表
DECLARE @str varchar(8000)
SET @str = ''
SELECT 人员编号,姓名,
@str = @str + ',' + 考勤日期 FROM dbo.A世界8月原始考勤$
WHERE 迟到<>0
group by 人员编号,姓名
大概思路是这样,但sql无法实现向变量赋值的 SELECT 语句不能与数据检索操作结合使用。
常规如sum,count()这种函数可以用来做分类汇总,但是系统不存在字符传连接汇总这种函数,自己如何写一个?或者如何实现以上的查询报表
CREATE TABLE [dbo].[A世界8月原始考勤$](
[人员编号] [nvarchar](255) COLLATE Chinese_PRC_CI_AS NULL,
[姓名] [nvarchar](255) COLLATE Chinese_PRC_CI_AS NULL,
[考勤日期] [nvarchar](255) COLLATE Chinese_PRC_CI_AS NULL,
[考勤记录核算] [float] NULL,
[迟到] [float] NULL,
[早退] [float] NULL,
[早晨未打卡] [float] NULL,
[下午未打卡] [float] NULL
) ON [PRIMARY]
如
select 人员编号,姓名
,sum([001]) as 迟到
from dbo.考勤记录明细$
group by 人员编号,姓名
想通过查询实现如下所示:
员工编码 姓名 考勤次数 迟到次数 迟到日期
DY31721 蔡青 24.5 3 2011-08-11,2011-08-19,2011-08-31
DY31722 刘青 23.5 1 2011-08-11
DY31723 马伶 21.5 2 2011-08-11,2011-08-30
实现思路
select 人员编号,姓名,sum(迟到) as 迟到次数 from 考勤表
DECLARE @str varchar(8000)
SET @str = ''
SELECT 人员编号,姓名,
@str = @str + ',' + 考勤日期 FROM dbo.A世界8月原始考勤$
WHERE 迟到<>0
group by 人员编号,姓名
大概思路是这样,但sql无法实现向变量赋值的 SELECT 语句不能与数据检索操作结合使用。
常规如sum,count()这种函数可以用来做分类汇总,但是系统不存在字符传连接汇总这种函数,自己如何写一个?或者如何实现以上的查询报表
作者: umwelt99 发布时间: 2011-11-28
try:
SQL code
SQL code
select 人员编号,姓名,sum(考勤记录核算)考勤次数,SUM(case when 迟到=1 then 1 else 0 end)迟到次数, stuff((select ','+CONVERT(varchar(10),考勤日期,120) from tb where 迟到=1 and 人员编号=a.人员编号 for xml path('')),1,1,'') from tb a group by 人员编号,姓名
作者: qianjin036a 发布时间: 2011-11-28
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28