一个基础问题,请指教
一个参数 VALUE 有三个值 : 请假 \ 缺勤 \早退
如果 我想 按 姓名 请假总数 缺勤总数 早退总数
这样用一条SQL语句来得出一段时间的所以人员的数据,这句话应该怎么写 请指教
问题点数:10、回复次数:5Top
1 楼cstudying(努力学习C#)回复于 2006-07-01 23:39:20 得分 0
有人回答吗?
谢谢
很着急的一问题
Top
2 楼cstudying(努力学习C#)回复于 2006-07-01 23:39:44 得分 0
做的一小程序马上要用了Top
3 楼hellowork(一两清风)回复于 2006-07-02 02:00:06 得分 5
假设保存"请假\缺勤\早退"的列名为value:
select 姓名,'请假总数'=count(case value when '请假' then 姓名 else null end),
'缺勤总数'=count(case value when '缺勤' then 姓名 else null end),
'早退总数'=count(case value when '早退' then 姓名 else null end)
from tablename
where ... group by 姓名 /*将"..."替换成条件*/Top
4 楼LouisXIV(夜游神)回复于 2006-07-02 02:06:52 得分 5
--参数?如果是字段的话可以用类似下面的语句
select
A.EmployeeName as 姓名,
isnull(count(case ItemName when '请假' then 1 else 0 end),0) as 请假总数,
isnull(count(case ItemName when '缺勤' then 1 else 0 end),0) as 缺勤总数,
isnull(count(case ItemName when '早退' then 1 else 0 end),0) as 早退总数
from
Emplyee_Master A
left outer join
Work_Attendenct B
on
A.EmployeeID=B.EmployeeID
--BTW 如果LZ很急的话,请尽量把自己的问题表述清楚,当然最好用词也准确点,
--至于不要有错别字则是最基础的要求了,要知道欲速则不达,他人更好地理解你的问题后
--才能及时给你准确的回复Top
5 楼LouisXIV(夜游神)回复于 2006-07-02 02:10:40 得分 0
--又忘写group了
select
A.EmployeeName as 姓名,
isnull(count(case ItemName when '请假' then 1 else 0 end),0) as 请假总数,
isnull(count(case ItemName when '缺勤' then 1 else 0 end),0) as 缺勤总数,
isnull(count(case ItemName when '早退' then 1 else 0 end),0) as 早退总数
from
Emplyee_Master A
left outer join
Work_Attendenct B
on
A.EmployeeID=B.EmployeeID
Group By
A.EmployeeNameTop




