您的位置: 龙岩金蝶软件论坛 -> 企业管理软件区域 -> 数据库 -> 行转列加合计
本帖共有704个阅读者
发表帖子 发表投票 回复主题
行转列加合计
尊贵身份标志
cyy275(管理员)
cyy275
头衔:社区公民
帮派:无帮无派
帖数:497
金钱:100000
积分:2248
注册时间:2017-5-8
楼主信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
行转列加合计


DECLARE @sql VARCHAR(8000)

SET @sql=''  --初始化变量@sql

SELECT @sql=@sql+',['+期间+']' FROM #mycyy GROUP BY 期间 --变量多值赋值,数值要加上[]

SET @sql=stuff(@sql,1,1,'')--去掉首个','


SET @sql = ' select m.* , n.合计,n.平均数 from

(select * from (select * from #mycyy) a pivot (sum(famount) for 期间 in (' + @sql
    + ')) b) m ,

(select 部门代码,成本对象代码,sum(famount) 合计, cast(avg(famount*1.0) as decimal(18,2)) 平均数 from #mycyy group by 部门代码,成本对象代码) n

where m.部门代码 = n.部门代码  and  m.成本对象代码 = n.成本对象代码'

EXEC(@sql)


--可行


SELECT [USERNAME], [USERACCOUNT]
    , [ROLENAME] = stuff((
        SELECT ',' + [ROLENAME]
        FROM [TEST].[dbo].[T_Role]
        WHERE [USERACCOUNT] = a.[USERACCOUNT]
        FOR XML path('')
    ), 1, 1, '')
FROM [TEST].[dbo].[T_Role] a
GROUP BY [USERNAME], [USERACCOUNT]



「该帖子被 cyy275 在 2021/7/20 10:05:54 编辑过」

今天的努力,明天的享受!
今天的无为,明天的无助!
今天的迷茫,明天的受累!
等级:管理员 参考IP地址:*.*.*.*
2019-10-31 21:10:07
Powered by 金蝶论坛 Copyright © 2011 www.xxhcom.cn. All rights reserved.