2010-04-30 75 views
2

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

基本上我必须得到平均上市价格,并且每月的销售日期=该月份的平均售价回溯1年。

简单与PHP,但创建12个数据库命中。

我试图在SQL statment下方,但它返回列表完全失灵

 
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 

“少那么”正从该statment剥离,所以请更换“小于”用正确的代码

输出:

 
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,等...

任何帮助表示赞赏!

回答

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 
+0

你这人!完美的作品 – Matt 2010-04-30 04:09:29