所以我在数据库的表中有以下列,这是一个例子......
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)
答案 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;