在单个字段中查找日期的差异

时间:2015-10-28 14:54:34

标签: sql sql-server-2008

所以我在数据库的表中有以下列,这是一个例子......

Transaction_Date | Trans_Code

1/1/2015         | JR
1/15/2015        | CP01

所以我试图找出发票日期(JR)和付款日期(CP01)之间的差异。最好的方法是什么?我试图做一个子选择但是没有用。

以下是我尝试使用以下建议的其他内容

Select

INVC_NUMB,
CUST_NUMB,
DATEDIFF (
    DAY,
    MAX(CASE WHEN TRANS_CODE = 'JR' THEN CONVERT(CHAR(10), DATEADD(d, TRANS_RDAT +5843, 0), 101) END),
    MAX(CASE WHEN TRANS_CODE = 'CP01' THEN CONVERT(CHAR(10), DATEADD(d, TRANS_RDAT +5843, 0), 101) END)
) AS DAYDIFF



FROM AR20

WHERE CONVERT(CHAR(10), DATEADD(d, TRANS_RDAT +5843, 0), 112) > 20141231

GROUP BY
INVC_NUMB,
CUST_NUMB,
CONVERT(CHAR(10), DATEADD(d, TRANS_RDAT +5843, 0), 1)

ORDER BY 
CONVERT(CHAR(10), DATEADD(d, TRANS_RDAT +5843, 0), 1)

1 个答案:

答案 0 :(得分:0)

一种方法是条件聚合:

select datediff(day,
                max(case when trans_code = 'JR' then transaction_date end),
                max(case when trans_code = 'CP01' then transaction_date end)
               ) as diff
from t;