2016-05-17 3 views
0

ни месяц не отображается здесь, ни данные не группируются в соответствии с месяцем, я просто получаю общую сумму или все поля и пустой месяц значение !, это запрос:Symfony DQL: выбор нулевого значения в месяц при группировке данных в соответствии с месяцем и годом

$em = $this->get("doctrine")->getManager(); 
     $conn = $em->getConnection(); 
     $sql = "SELECT MONTH(FROM_UNIXTIME(s.timestamp)) as mon, SUM(s.amt) as total FROM sales s GROUP BY MONTH(FROM_UNIXTIME(s.timestamp)) ORDER BY mon"; 
     $stmt = $conn->prepare($sql); 
     $stmt->execute(); 
     $all_rows = $stmt->fetchAll(); 
     foreach ($all_rows as $row) { 
      echo "Month: {$row["mon"]}, Total: {$row["total"]} \n"; 
     } 

ТАБЛИЦА зНАЧЕНИЕ:

  1. 2016-05-26 00:00:00 - 150
  2. 2016-05-24 00:00:00 - 300
  3. 2016-05- 26 00:00:00 - 250
  4. 2016-04-24 00:00:00 - 380

поэтому выход должен быть: месяц: 4 амт: 380 месяц: 5 амт: 700

но получение:

месяц: аМТ: 1080

какие-либо решения?

спасибо.

ответ

1

MySQL FROM_UNIXTIME() может не понадобиться здесь, так как ваша дата хранится в формате DateTime TYPE. Держу пари, это то, что вы хотите сделать:

<?php 

    $this->get("doctrine")->getManager(); 
    $conn  = $em->getConnection(); 
    $sql  = "SELECT MONTH(s.timestamp) as mon, SUM(s.amt) as total FROM sales s GROUP BY MONTH(s.timestamp) ORDER BY MONTH(s.timestamp)"; 
    $stmt  = $conn->prepare($sql); 
    $stmt->execute(); 

    $all_rows = $stmt->fetchAll(); 

    foreach ($all_rows as $row) { 
     echo "Month: {$row["mon"]}, Total: {$row["total"]} \n"; 
    } 

Ниже более коротким вариантом запроса, используя предпочтительный синтаксис (псевдонимы) ...

<?php 
    $this->get("doctrine")->getManager(); 
    $conn  = $em->getConnection(); 
    $sql  = "SELECT MONTH(s.timestamp) as mon, SUM(s.amt) as total FROM sales s GROUP BY mon ORDER BY mon"; 
    $stmt  = $conn->prepare($sql); 
    $stmt->execute(); 

    $all_rows = $stmt->fetchAll(); 

    foreach ($all_rows as $row) { 
     echo "Month: {$row["mon"]}, Total: {$row["total"]} \n"; 
    } 

Вот скрин-шоты свалка, пытался от Symfony3:

enter image description here

+0

Пожалуйста, не искажать свой ответ. Если вы хотите удалить его, удалите его. – JAL

+0

Спасибо, он отлично работает, спасибо большое –

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