我正在寻找在SQL SERVER 2000上有效的答案!
我在SQL中有一个类似
Jan hours
Employee 1 Regular 10
Employee 1 Overtime 10
Employee 1 Vacation 1
Employee 2 Regular 15
Employee 2 Overtime 15
Employee 2 Vacation 1
什么是SQL查询,以便在同一个表中只有常规和加班时间有条目?因此,同一个表中的下两个条目看起来像
Emplpyee 1 Total 20
Emplpyee 2 Total 30
答案 0 :(得分:4)
我不知道您的列名甚至表结构,但您可以使用以下使用聚合函数和GROUP BY
:
select emp, sum(hours) Total
from yourtable
where type in ('Regular', 'Overtime')
group by emp
如果您的数据未规范化且员工和类型属于同一列,那么您可以使用以下内容:
select
replace(replace(emp, 'Regular', ''), 'Overtime', '') Emp,
sum(hours) total
from yourtable
where emp like '%Regular%'
or emp like '%Overtime%'
group by replace(replace(emp, 'Regular', ''), 'Overtime', '')
答案 1 :(得分:0)
试试这个:
select
left(EmpName, 11) + ' Total',
SUM(hours)
from
emptab
WHERE
hourstype in ('Regular', 'Overtime')
group by
EmpName