2015-02-24 88 views
0

我有一個包含許多列(d_date,d_amount等)的表(daily_records)。這個表格包含了太多的記錄,我在下面給出了一些記錄。PostgreSQL來自同一個表的差異日期值的差異

------------------------ 
d_date  | d_amount 
------------------------ 
1-Jan-2011 | 100 
2-Jan-2011 | 110 
3-Jan-2011 | 115 
4-Jan-2011 | 116 
. 
. 
. 
1-Jan-2012 | 220 
2-Jan-2012 | 230 
3-Jan-2012 | 225 
. 
. 
. 

我想日期前記錄當前記錄 量1年的量之間的差異,這種差異應該是百分比,如果這種差異應該大於100%,所以這個當前記錄的日期,我想。

像例如,目前的戰績是1月 - 2012年和他的量是220 和1年前的記錄是1月 - 2011年和他的量爲100

int d1 = 220; 
int d2 = 100; 
double percentage = ((220-100)/100)*100 = 120; 

百分比值120%超過100%所以當前記錄的日期是我想要的結果。

so我如何得到這個結果查詢?

請指導我

+0

您可能想嘗試自聯接。 – joop 2015-02-24 13:25:48

回答

0

試試這個查詢。它可能不是最好的方式,但它的工作原理 -

SELECT a.d_date as adate, a.d_amount as a_am, b.d_date as bdate, b.d_amount as b_am 
FROM daily_records a, daily_records b 
WHERE a.d_amount > b.d_amount 
AND extract(month from a.d_date) = extract(month from b.d_date) 
AND extract(day from a.d_date) = extract(day from b.d_date) 
AND extract(year from a.d_date) - extract(year from b.d_date) = 1;