Сижу вторые сутки и дико туплю. Господа, подскажите, как получить то, чего желаю..
Выбираю период (в одном и том же году). Например, с 1 января до 31 декабря 2013 года. Далее делаю SUM() для нужного столбца. Код:
// Идентификатор объекта в городе
foreach (json_decode($this->data['need_radio']) as $k=>$v)
{
$tempDataArray = []; $tempSumArray = [];
$query = pg_query($this->connection,"
SELECT town_name FROM sprtowns WHERE town_id=".$v."
") or die($this->sendMessage(true,'Ошибка запроса. m:one:sprt_mult'));
$tmp = pg_fetch_array($query);
$queryPayment = pg_query($this->connection, "
SELECT to_char(pay.date_pay::abstime::timestamp, 'mm-yyyy') as date, sum(pay.summ) as summ FROM payment as pay, orders as
ord WHERE pay.date_pay>=".$from_date." AND pay.date_pay<=".$to_date."
AND pay.dropped=0 AND pay.plan_pay=0 AND pay.order_id=ord.order_id AND ord.dogovor_town_id=".$v." AND
ord.is_test_object=0 AND ord.type=1 AND ord.dropped=0 AND ord.org_id=1
GROUP BY date
") or die($this->sendMessage(true,'Ошибка запроса. m:one:qrypmnt_mult'));
}
Пример получаемых данных для г.Комсомольска-на-Амуре:
Код:
|
date summ
01-2013 16074
02-2013 295640.399609375
03-2013 633340.14
04-2013 1503321.66058594
05-2013 1027556.70068359
06-2013 744836.5
07-2013 1321706.7
08-2013 26606
08-2013 596959.54
09-2013 1050410.6
10-2013 1063984.06995117
11-2013 1102416.03
12-2013 61767
12-2013 2558022.37 |
А вот пример для г.Благовещенск:
Код:
|
date summ
09-2013 32275
12-2013 38275 |
Я хочу, чтобы для Благовещенска и других городов выдавался тот интервал, который я выбрал. Если для данной даты нет значения, то хочу получить такой вид:
Код:
|
date summ
01-2013 NULL
02-2013 NULL
03-2013 NULL
04-2013 NULL
05-2013 NULL
06-2013 NULL
07-2013 NULL
08-2013 NULL
09-2013 32275
10-2013 NULL
11-2013 NULL
12-2013 NULL
12-2013 38275 |
Подскажите, пожалуйста, как поступить..я вроде знаю про LEFT JOIN, который в теории мог бы мне помочь, но как его применить - в мыслях нету