当前月,每个人1-30号的考勤情况? 5C

图片说明
1号到30号,每天,每个人的考勤情况

图片说明

4个回答

这个是要问什么问题?

a362238047
a362238047 使用my sql
5 年多之前 回复
a362238047
a362238047 就是想行转列,不知道如何转发。。
5 年多之前 回复
dbing129129
wuyuzhong2 回复dbing129129: 不够有些不懂的地方是否可请教你
5 年多之前 回复
dbing129129
wuyuzhong2 谢谢您的分享,正在学习中
5 年多之前 回复
dbing129129
wuyuzhong2 谢谢正在学中,非常感谢
5 年多之前 回复

直接写报表,然后分组就可以了

我发你个自己写的函数:
/******************************************************

  • SQLServer字符串批量拆分函数
    --原始数据
    id names
    ----------- --------------------
    1 ljy,zwg,cym
    2 czg,zy
    --生成的数据
    id rn name
    ----------- ----------- ----------
    1 1 ljy
    1 2 zwg
    1 3 cym
    2 1 czg
    2 2 zy

--示例1:

declare @table table(id int , names varchar(20))

insert into @table select 1, 'ljy,zwg,cym'

insert into @table select 2 , 'czg,zy'

SELECT * FROM @table

SELECT a.id,rn,b.v AS name

FROM @table AS a outer apply dbo.uf_split_string_batch(a.names)b

--示例2:

SELECT a.c_guid,rn,b.v AS name

FROM tb_contract a

outer apply dbo.uf_split_string_batch(a.c_store_id)b

*************************************************************************/

CREATE FUNCTION uf_split_string_batch(@value varchar(MAX))

RETURNS @table TABLE(rn int,v varchar(MAX))

AS

BEGIN

INSERT INTO @table

SELECT b.*

FROM(SELECT CONVERT(XML , '' + REPLACE(@value, ',','' )+ '' ) AS f )a

OUTER APPLY

(

SELECT rn = row_number ()OVER (ORDER BY getdate ()),t.c.value ('.' , 'varchar(max)' ) AS f

FROM a.f.nodes ('//v' ) AS t(c )

)b

RETURN

END

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐