带增量的SQL select语句

时间:2010-04-30 03:05:32

标签: php sql select

目前我在PHP中使用for语句来获取此SQL语句的所有月份,但是想知道我是否可以使用SQL完成所有操作。

基本上我必须得到平均上市价格,并且每个月的平均售价可以追溯到1年,其中卖出日期=月份。

使用PHP很简单,但会创建12个数据库命中。

我正在尝试下面的sql语句,但它完全无序返回列表

SELECT 
avg(ListingPrice), 
avg(SellingPrice),
count(ListingDate),
DATE(SellingDate) as date,
MONTH(SellingDate) as month,
YEAR(SellingDate) as year
FROM `rets_property_resi` 
WHERE Area = '5030'
AND Status = 'S'
AND SellingDate "less then" = 'NOW()'
GROUP BY month
ORDER BY month desc
LIMIT 0,12

“less then”被剥夺了声明,所以请用正确的代码替换“less then”

输出:

867507.142857   877632.492063   63  1996-12-24  12  1996
971355.833333   981533.333333   60  1997-11-18  11  1997
949334.328358   985453.731343   67  1997-10-23  10  1997
794150.000000   806642.857143   70  1996-09-20  9   1996
968371.621622   988074.702703   74  1997-08-21  8   1997
1033413.366337  1053018.534653  101 1997-07-30  7   1997
936115.054795   962787.671233   73  1996-06-07  6   1996
875378.735632   906921.839080   87  1996-05-16  5   1996
926635.616438   958561.643836   73  2010-04-13  4   2010
1030224.472222  1046332.291667  72  2010-03-31  3   2010
921711.458333   924177.083333   48  1997-02-28  2   1997
799484.615385   791551.282051   39  1997-01-15  1   1997

正如你所看到的,它是从随机日期开始的,我需要从2010-03,2010-02,2010-01等开始...

任何帮助表示赞赏!

1 个答案:

答案 0 :(得分:2)

试试这个:

SELECT 
    avg(ListingPrice), 
    avg(SellingPrice),
    count(ListingDate),
    MONTH(SellingDate) as month,
    YEAR(SellingDate) as year
FROM `rets_property_resi` 
WHERE Area = '5030'
    AND Status = 'S'
    AND SellingDate <= NOW()
GROUP BY year, month
ORDER BY year desc, month desc
LIMIT 0,12