我有一张表,其中包含一年的标准出勤数据
AttID | 现在 | 缺席。 | 离开 | 生病了 | 月 | 标准注册号 |
---|---|---|---|---|---|---|
1. | 23 | 1 | 0 | 0 | 一月。 | 1 |
2. | 25 | 0 | 0 | 0 | 一月。 | 2 |
3. | 23 | 0 | 0 | 0 | 三月。 | 1 |
4. | 21 | 3 | 0 | 1 | 三月。 | 2 |
所以...... |
我希望得到如下视图的结果:
标准要求 | 月 | P | A | L | S | 月 | P | A | L | S |
---|---|---|---|---|---|---|---|---|---|---|
1. | 一月。 | 23 | 1 | 0 | 0 | 三月 | 23 | 0 | 0 | 0 |
2. | 一月。 | 25 | 0 | 0 | 0 | 三月 | 21 | 3 | 0 | 1 |
我需要此视图 12 个月,我该怎么做?请帮助我
您可以使用这样的查询:
select StdRegNo
-- January info
,max(case when [month] = 'JAN' then Present end) JAN_P
,max(case when [month] = 'JAN' then [absent] end) JAN_A
,max(case when [month] = 'JAN' then leave end) JAN_L
,max(case when [month] = 'JAN' then sick end) JAN_S
-- March info
,max(case when [month] = 'MAR' then Present end) MAR_P
,max(case when [month] = 'MAR' then [absent] end) MAR_A
,max(case when [month] = 'MAR' then leave end) MAR_L
,max(case when [month] = 'MAR' then sick end) MAR_S
-- And so on ...
from yourTable
group by StdRegNo;