2014-12-02 3 views
0

У меня есть запрос SQL Я бегу на базе данных MySQL, который выглядит, как это ...SQL запросов для каждой указанной даты

$count0 = $wpdb->get_results(" 

SELECT *, COUNT(*) as TotalValueCount 
    FROM 
    wp_rg_lead 
    INNER JOIN wp_rg_lead_detail ON 
    wp_rg_lead.id=wp_rg_lead_detail.lead_id 
    WHERE wp_rg_lead.form_id = '46' 
    AND cast(date_created as date) >= current_date - interval '7' day 
    AND field_number = '18' 
    GROUP BY value 
      "); 

    foreach ($count0 as $page) { 
    echo $repid_field . ' - ' . $page->form_id . ' - ' . $page->value . ' - ' . $page->lead_id . ' - ' . $page->date_created.' - ' . $page->TotalValueCount. '<br/>'; 

То, что я хочу сделать с этим, однако, возвращает счетчик для каждого значение для каждого из предыдущих 7 дней, так что я могу получить результаты что-то вроде этого ...

value | 01/01/2014 | 01/01/2014 | 01/01/2014 
-------------------------------------------------- 
AA01   34    23   12 
BR65   3    65   65 
YR76   45    12   65 

это то, что мне нужно будет сделать с помощью функции PHP потом или это может быть сделано с самого SQL запроса ?

+1

Имхо, вы не должны пытаться получить ожидаемый результат в самой MySQL. Получите желаемую группировку данных по значению ** и ** date, а затем используйте/отформатируйте ее с помощью php/html. –

+0

Так я и сам наклонился. Спасибо за совет – fightstarr20

ответ

1

это нужно сделать работу

SELECT value, 
     sum(case 
       when cast(date_created as date) = current_date - interval '7' day 
       then 1 else 0 end 
      ) d7, 
     ... 
     sum(case 
       when cast(date_created as date) = current_date - interval '1' day 
       then 1 else 0 end 
      ) d1 
FROM wp_rg_lead 
INNER JOIN wp_rg_lead_detail ON 
wp_rg_lead.id=wp_rg_lead_detail.lead_id 
WHERE wp_rg_lead.form_id = '46' 
AND cast(date_created as date) >= current_date - interval '7' day 
AND field_number = '18' 
GROUP BY value 
+0

Поле date_created отформатировано следующим образом: '2014-12-01 14:23:00' - Есть ли способ заменить d1, d2, d3 и т. Д. Самой датой? – fightstarr20

+0

Я думаю, что ответ скорее нет. Мне лучше оставить такую ​​форму для php/html. –

Смежные вопросы