*****SQL存储过程的问题(CSDN的同仁们帮助看下,或者提供些思路) 80OceanRain]

发布时间:2017-2-21 8:45:18 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"*****SQL存储过程的问题(CSDN的同仁们帮助看下,或者提供些思路) 80OceanRain]",主要涉及到*****SQL存储过程的问题(CSDN的同仁们帮助看下,或者提供些思路) 80OceanRain]方面的内容,对于*****SQL存储过程的问题(CSDN的同仁们帮助看下,或者提供些思路) 80OceanRain]感兴趣的同学可以参考一下。

1.表结构如下(am:上午 pm:下午): 员工姓名 1am 1pm 2am 2pm 3am 3pm...... 赵三 交易所  交易所  总部    休假    总部    休假 孙四 总部    休假    休假    交易所  交易所  交易所 吕五            交易所  总部    总部    休假    休假    交易所 .....            ......        ....... ============================================================================== 2.如何使用sql存储过程(或者SQL语句)实现下列形式 1日                                      交易所:赵三(全天)、吕五(上午)                   总部:孙四(上午)、吕五(下午) 休假:孙四(下午) 2日 交易所:孙四(下午)                   总部:赵三(上午)、吕五(上午) 休假:赵三(下午)、孙四(上午) ....... 

先将横向数据变成纵向数据,再select

select 员工姓名,am=[1am], pm=[1pm], date=1 from 表 union all select 员工姓名,am=[2am], pm=[2pm], date=2 from 表 union all select 员工姓名,am=[3am], pm=[3pm], date=3 from 表 union all ... select 员工姓名,am=[nam], pm=[npm], date=n from 表

兄弟啊,一个月31天,你让我union 31次啊?

那就硬写,反正31天,不过代码很长。

看不懂,友情帮顶.

谢谢大家,帮忙看下

你上下午,全天怎么判断,以1AM来判断么?

还有就是你日期怎么来的, 上面只有时间,没有日期, 貌似没有看懂诶

需求就是这样的

貌似没有看懂

似乎是行转列

引用 4 楼 Limpire 的回复:那就硬写,反正31天,不过代码很长。

遍历

比较杂乱,就如看得很累的excel文档一样

首先你需要维护一个逻辑,就是什么是“上午”,“下午”,“全天”。

引用 4 楼 Limpire 的回复:那就硬写,反正31天,不过代码很长。

MARK

declare @t table(nm varchar(10),obj varchar(10),score int) insert into @t   select 'a','EN',89 union all select 'a','CH',78 union all select 'a','HO',79 union all select 'b','EN',77 union all select 'b','CH',88 union all select 'b','HO',100 union all select 'c','Ht',100 --1 select ta.* from ( select * from @t ) ta  --2 select ta.*,tb.[sum] from ( select * from @t pivot (sum(score) for obj in ([EN],[CH],[HO]) ) as pt ) ta left join ( select nm,[sum]=sum(score) from @t group by nm ) tb on (ta.nm=tb.nm) --3 select ta.* from ( select * from @t pivot (max(score) for nm in ([a],[b]) ) as pt ) ta 

mark.

引用 8 楼 hery2002 的回复:还有就是你日期怎么来的,  上面只有时间,没有日期,  貌似没有看懂诶 引用 15 楼 dutguoyi 的回复:首先你需要维护一个逻辑,就是什么是“上午”,“下午”,“全天”。 

先遍历每天,再遍历每个人。

上一篇:如何使用事务 100wzy_love_sly_2]
下一篇:sql 89wzy_love_sly_1]

相关文章

相关评论