手动两个日期之间的平均天数

时间:2017-03-13 21:34:49

标签: sql db2

我有两张桌子,

TABLE_1:

ID    RECENT_PURCHASE OLDEST_PURCHASE
------ --------------- ---------------
     1 12/01/2001      04/20/1999
     2 12/01/2001      08/08/1998
     3 10/06/2001      01/27/1998
     4 08/11/2001      06/13/2000
     6 10/02/2001      05/18/2000

TABLE_2:

ID    PURCHASE_NUMBER
------ ---------------
     1               2
     2               7
     3               2
     4               3
     6               3

那么,我想做什么:

  

计算“RECENT_PURCHASE”和“RECENT_PURCHASE”之间的平均天数   “OLDEST_PURCHASE”。我的意思是,首先我想得到的数量   表1中“RECENT_PURCHASE”和“OLDEST_PURCHASE”之间的天数,以及   然后将结果除以表2中的“PURCHASE_NUMBER”。我该如何手动完成?

     

我喜欢什么,

     

选择ID,(H.recent_purchase - H.oldest_purchase)/   I.purchase_number)来自~~

     

但是它返回了完全不正确的值..比如10000,这没有意义

预期结果如下:

ID      AVG_PURCHASE_DATE 
------ ------------- 
1       478
2       173

......等等

例如,对于ID 1:

我使用了folliwng网站 https://www.timeanddate.com/date/durationresult.html?m1=04&d1=20&y1=1999&m2=12&d2=01&y2=2001 计算2个日期之间的天数,我把“12/01/2001”和“04/20/1999”,并说它有956天。划分为956/2(因为表2中的id为2)为478天。

例如,对于ID 2:

我使用了folliwng网站 https://www.timeanddate.com/date/durationresult.html?m1=04&d1=20&y1=1999&m2=12&d2=01&y2=2001 计算2个日期之间的天数,我把“08/08/1998”和“12/01/2001”,并且说有1211天。除以1211/7(因为表2中的id 2为7)是173天。

1 个答案:

答案 0 :(得分:1)

根据此answer使用DAYS(DATE) - DAYS(DATE)来获取两个日期之间的日期差异。

SELECT ID, DAYS(RECENT_PURCHASE) - DAYES(OLDEST_PURCHASE)
FROM TABLE1

然后使用INNER JOIN与表2使用ID并除以PURCHASE_NUMBER

SELECT     TABLE1.ID, 
           (DAYS(RECENT_PURCHASE) - DAYES(OLDEST_PURCHASE)) / PURCHASE_NUMBER
FROM       TABLE1
INNER JOIN TABLE2
ON         TABLE1.ID = TABLE2.ID