我有一个表(daily_records),其中包含许多列(d_date,d_amount等等)。这个表包含太多记录,我在下面给你看一些记录。
------------------------
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%所以这个记录的日期我想要。
例如,当前的记录是2012年1月1日,他的金额是220。 和1年前的记录是2011年1月1日,他的金额是100。
int d1 = 220;
int d2 = 100;
double percentage = ((220-100)/100)*100 = 120;
百分比值是120%,超过100%所以这个当前记录的日期我想要的结果。
所以如何才能在查询中得到这个结果?
请指导我
答案 0 :(得分: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;