Sql 减去不同列和不同行中的值

Sql 减去不同列和不同行中的值,sql,Sql,我有一个具有以下值的表: job name start_dt end_dt gggggg 4/5/2013 5/5/2013 iiiii 6/5/13 7/8/13 我想把gggggg的start\dt从iiii的end\dt分出来 我正在使用此查询: select a.job_nm,(b.end_dt-a.start_dt) as difference from JOB a,b where a.

我有一个具有以下值的表:

job name       start_dt         end_dt
gggggg         4/5/2013        5/5/2013
iiiii            6/5/13          7/8/13
我想把
gggggg
start\dt
iiii
end\dt
分出来

我正在使用此查询:

select a.job_nm,(b.end_dt-a.start_dt) as difference from JOB a,b
where a.job_nm='ggggg' and b.job_nm='iiiii'.

这没有给我任何输出。

如果这是SQL Server,您可以使用:


如果这是SQL Server,则可以使用:


一种方法是条件聚合:

select (max(case when j.job_nm = 'iiiii' then b.end_dt end) - 
        max(case when j.job_nm = 'ggggg' then a.start_dt end)
       ) as difference
from Job j
where j.job_nm in ('ggggg', 'iiiii');

您可以使用
datediff()
函数,但对于
datetimes
我发现减法更容易。

一种方法是条件聚合:

select (max(case when j.job_nm = 'iiiii' then b.end_dt end) - 
        max(case when j.job_nm = 'ggggg' then a.start_dt end)
       ) as difference
from Job j
where j.job_nm in ('ggggg', 'iiiii');

您可以使用
datediff()
函数,但是对于
datetimes
我发现减法更容易。

您使用的是哪个数据库引擎?您使用的是哪个数据库引擎?