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

时间:2013-08-26 10:37:35

标签: sql

我有一个包含以下值的表:

job name       start_dt         end_dt
gggggg         4/5/2013        5/5/2013
iiiii            6/5/13          7/8/13

我想从start_dt的{​​{1}}中减去gggggg的{​​{1}}。

我正在使用此查询:

end_dt

这没有给我输出。

2 个答案:

答案 0 :(得分:1)

如果这是SQL Server,您可以使用DATEDIFF()

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

答案 1 :(得分:0)

执行此操作的一种方法是条件聚合:

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我更容易找到减法。