Допуская Я ищу с входными переменными: $ от: 01-01-2016 $ до: 03-12-2016Laravel запросов к группе двумя разными датами
Вот моя текущая таблица в таблице: (outreach_links)
created_at start_date status
---------------------------------
2016-12-01 2016-01-01 A
2016-12-02 2016-02-01 A
2016-12-03 2016-03-01 A
2016-12-03 2016-04-01 A
2016-12-03 NULL P
2016-12-03 NULL P
2016-12-03 NULL P
Я хотел бы, чтобы такой вывод после запроса >>
Month P A
---------------------------
Jan/2016 0 1
Feb/2016 0 1
March/2016 0 1
April/2016 0 1
Dec/2016 3 0
Логика заключается в том, что я хочу группировать Status = "P" by created_at И я хочу сгруппировать Status = "A" по start_date? как я могу выполнить это в запросе?
Вот мой текущий Laravel 5,2 запроса:
DB::select(
DB::raw('select
sum(case when outreach_links.status="P" and outreach_links.created_at >= ? and outreach_links.created_at <=? then 1 else 0 end) as pp,
sum(case when outreach_links.status="A" and outreach_links.start_date >= ? and outreach_links.start_date <=? then 1 else 0 end) as aa,
sum(case when outreach_links.status="A" then outreach_links.cost else 0 end) as cc,
MONTH(outreach_links.created_at) month,
MONTHNAME(outreach_links.created_at) month_name,
YEAR(outreach_links.created_at) year from outreach
inner join outreach_links on outreach.id = outreach_links.outreach_id
where outreach.profile_id=?
group by month, year'),
[$from, $to, $from, $to, $pro_id]
);
выход для этого, так как я группирования по формуле (created_at) только неправильно:
Month P A
---------------------------
Dec/2016 3 4
Вот выход мой запрос, когда я делаю >> var_dump();
array(1) {
[0]=>
object(stdClass)#369 (6) {
["pp"]=>
string(1) "3"
["aa"]=>
string(1) "4"
["cc"]=>
string(4) "0.00"
["month"]=>
string(2) "12"
["month_name"]=>
string(8) "December"
["year"]=>
string(4) "2016"
}
}
Помогите мне изменить запрос?
Благодаря
любая другая помощь plz? – user3150060