[英]SQL Oracle Combine records
我有一個查詢,它返回某人上班的時間。 但是,這給了我每個人多個記錄。 有沒有一種方法可以將時間加在一起,這樣我就有了每個員工的總時間。
查詢是:
select
employee.first_name,
employee.last_name,
to_number( to_char(to_date('1','J') +
(time_sheet.finish_date_time - time_sheet.start_date_time), 'J') - 1) days,
to_char(to_date('00:00:00','HH24:MI:SS') +
(time_sheet.finish_date_time - time_sheet.start_date_time), 'HH24:MI:SS') time
from
employee
inner join
employee_case on employee.employee_id = employee_case.employee
inner join
time_sheet on time_sheet.employee_case = employee_case.employee_case_id
where
employee_case.case = 1;
當前輸出為:
但我想將Steve Baid值合並為1。
有任何想法嗎?
使用|| 合並以下值:
select
employee.first_name,
employee.last_name,
sum (to_number( to_char(to_date('1','J') +
(time_sheet.finish_date_time - time_sheet.start_date_time), 'J') - 1)) days
from
employee
inner join
employee_case on employee.employee_id = employee_case.employee
inner join
time_sheet on time_sheet.employee_case = employee_case.employee_case_id
where
employee_case.case = 1;
GROUP BY employee.first_name, employee.last_name
我認為您需要將其作為嵌套查詢來執行:
select
first_name,
last_name,
to_number( to_char(to_date('1','J') + (duration), 'J') - 1) days,
to_char(to_date('00:00:00','HH24:MI:SS') + (duration), 'HH24:MI:SS') time
from (
select
employee.first_name first_name,
employee.last_name last_name,
time_sheet_sum.duration duration
from
employee
inner join
(
select
distinct employee_case.employee_id employee_id,
sum(time_sheet.finish_date_time - time_sheet.start_date_time) duration
from
employee_case
inner join
time_sheet on time_sheet.employee_case = employee_case.employee_case_id
where
employee_case.case = 1
group by
employee_case.employee_id
) time_sheet_sum on employee.employee_id = time_sheet_sum.employee
);
注意:我無法測試或驗證此代碼。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.