sql server中需要循环输出某个按规律的sql语句,并且该sql语句执行之后就是一列,如何写循环

_MrDing 2015-01-17 02:57:14
SELECT
T1.UDR_ID,
SUM(CASE
WHEN T1.STD_DATE = '20150101' AND T1.DAY_NO < '7' THEN 1
ELSE 0
END) '20150101',
SUM(CASE
WHEN T1.STD_DATE = '20150102' THEN 1
ELSE 0
END) '20150102',
SUM(CASE
WHEN T1.STD_DATE = '20150103' THEN 1
ELSE 0
END) '20150103',
SUM(CASE
WHEN T1.STD_DATE = '20150104' THEN 1
ELSE 0
END) '20150104',
SUM(CASE
WHEN T1.STD_DATE = '20150105' THEN 1
ELSE 0
END) '20150105',
SUM(CASE
WHEN T1.STD_DATE = '20150106' THEN 1
ELSE 0
END) '20150106',
SUM(CASE
WHEN T1.STD_DATE = '20150107' THEN 1
ELSE 0
END) '20150107',
SUM(CASE
WHEN T1.STD_DATE = '20150108' THEN 1
ELSE 0
END) '20150108',
SUM(CASE
WHEN T1.STD_DATE = '20150109' THEN 1
ELSE 0
END) '20150109',
SUM(CASE
WHEN T1.STD_DATE = '20150110' AND T1.DAY_NO = '7' THEN 9
WHEN T1.STD_DATE = '20150110' AND T1.DAY_NO < '7' THEN 1
WHEN T1.STD_DATE='20150110' AND T1.DAY_NO='7' AND T1.UDR_ID IS NULL THEN 9
ELSE 0
END) '20150110',
SUM(CASE
WHEN T1.STD_DATE = '20150111' AND T1.DAY_NO = '7' THEN 9
WHEN T1.STD_DATE = '20150111' AND T1.DAY_NO < '7' THEN 1
ELSE 0
END) '20150111',
SUM(CASE
WHEN T1.STD_DATE = '20150112' THEN 1
ELSE 0
END) '20150112'

FROM SR_LIST T1
GROUP BY T1.UDR_ID

------
1.主要是为了做一个稼动率统计,将一个月的每天去循环和数据中的STD_DATE比较
2.如何将上面的sum(case when T1.STD_DATE=日期参数 AND T1.DAY_NO='7' THEN 9
WHEN T1.STD_DATE = 日期参数 AND T1.DAY_NO = '7' THEN 9
WHEN T1.STD_DATE = '日期参数 AND T1.DAY_NO < '7' THEN 1
ELSE 0
END) 日期参数
动态写入,根据月份产生动态列


...全文
1213 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

6,108

社区成员

发帖
与我相关
我的任务
社区描述
其他数据库开发 数据库报表
社区管理员
  • 数据库报表社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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