2016-08-12 7 views
0

startdateを別の行のenddateから差し引きしようとしていますが、同じコードに対してのみです。例えば異なる行から減算する

  • 私はC002 (2012-06-30)の行1にC002 (2012-07-01)マイナスenddateの行2でstartdateをしたいです。
    • 結果はデー​​タが1
  • 行4は、同様に1(日)を示すべき行であってはならない行2のため1(日)であるべきです。

これを行うにはどうすればよいですか?

row code  startdate     enddate 
1  C002  2011-07-01 00:00:00.000 2012-06-30 00:00:00.000 
2  C002  2012-07-01 00:00:00.000 2013-06-30 00:00:00.000 
3  C003  2011-07-01 00:00:00.000 2012-06-30 00:00:00.000 
4  C003  2012-07-01 00:00:00.000 2013-06-30 00:00:00.000 
+0

音)が、あなたは期待される出力を見せることができますか? – scsimon

答えて

0
select max(row),code,datediff(day,max(startdate),min(enddate)) as ouputtt 
from table 
group by 
code 
0

あなたは追加の列として要求された値を追加し、このクエリを、使用することができthis-

Select x.code, y.startdate-x.enddate 
From table1 x left outer join table1 y on 
X.code=Y.code 
Where 
X.enddate<y.startdate 
0

を試してみてください:あなたは(LEADをしたいよう

select row, code, startdate, enddate, 
     datediff('d', lag(enddate) over (partition by code order by row1), startdate) df 
from mytable 
関連する問題