2010-04-30 5 views
2

В настоящее время я использую инструкцию for в PHP, чтобы получить все месяцы для этого оператора SQL, но хотел бы знать, могу ли я все это сделать с SQL.SQL select statement with increment

В основном я должен получить среднюю цену листинга, а средняя цена продажи за каждый месяц возвращается 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 

«меньше, то» становится вырезаны из даного, поэтому, пожалуйста, замените «меньше» с надлежащей код

Выход:

 
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