2016-05-17 5 views
0

はどちらも月がここに表示されていないにもデータが月に応じてグループ化されている月と年に基づいてデータをグループ化しながら、月の値にnullを取り出し、私はちょうど合計またはすべてのフィールドと空の月を取得しています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"; 
     } 

テーブル値:この!,値は、クエリである - 150

  • 2016年5月24日午後12時00分00秒

    1. 2016年5月26日午後12時00分00秒 - 300
    2. 2016-05- 26夜十二時00分00秒 - 250
    3. 2016年4月24日夜十二時00分00秒 - 380

    ので、出力は次のようになります 月:4 AMT:380 月:5 AMT:700

    が、取得:

    月:、AMT:1080

    任意のソリューションは?

    ありがとうございました。

  • 答えて

    1

    のMySQL FROM_UNIXTIME()あなたの日付のDateTime型として保存されているので、ここでは必要ないかもしれません。これはあなたが何をしたいですIを賭ける:以下

    <?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

    ありがとう、それは素晴らしい、ありがとう –

    関連する問題