簡體   English   中英

sql結合查詢結果

[英]sql combine query results

我有以下查詢:

select 
    employee.last_name || ', ' || employee.first_name name, 
    job.title,
    daystotime(time_sheet.finish_date_time - time_sheet.start_date_time) 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 
inner join 
    job on employee.job = job.job_id
where 
    employee_case.case = 1
order by 
    employee.last_name;

得到以下結果:

在此處輸入圖片說明

但是,我需要的是能夠合並同一位員工的時間列,以提供總時間。

我創建的用於生成時間字段的函數是:

create or replace function DaysToTime(p_val in number)
return varchar2
is
  l_days     number;
  l_hours    number;
  l_minutes  number;
  l_seconds  number;
begin
  l_days := p_val;
  l_Hours := (l_days - trunc(l_days)) *24;
  l_minutes := (l_hours - trunc(l_hours)) * 60;
  l_seconds := (l_minutes - trunc(l_minutes)) * 60;
 return to_char(trunc(l_days), 'fm09')  ||':'||
        to_char(trunc(l_hours), 'fm09')  ||':'||
        to_char(trunc(l_minutes), 'fm09')||':'||
        to_char(trunc(l_seconds), 'fm09');
end;

感謝您提供的任何幫助,您可以給我這個建議,然后說是否需要其他信息

在函數+ GROUP BY中使用SUM:

select 
    employee.last_name || ', ' || employee.first_name name, 
    job.title,
    daystotime(sum(time_sheet.finish_date_time - time_sheet.start_date_time)) 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 
inner join 
    job on employee.job = job.job_id
where 
    employee_case.case = 1
group by employee.last_name, employee.first_name, 
         job.title  
order by 
    employee.last_name;

PS:Oracle中有一個INTERVAL類型(也許您不需要自己的函數):

select numtodsinterval(d2 - d1, 'day') from
(select to_date('02 12:44:01', 'DDHH24:MI:SS') d1, 
        to_date('03 12:44:05', 'DDHH24:MI:SS') d2 
 from dual)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM