【问题标题】:DQL/SQL GROUP BY MONTH()DQL/SQL 按月分组()
【发布时间】:2017-11-16 10:16:47
【问题描述】:

是否可以按月份分组,只有日期作为列?这可以通过 PHP 循环来实现,但我更喜欢使用 SQL。下面的实时代码:

    $query = $this->em
            ->createQuery("SELECT Month(p.planDate), SUM(ROUND(p.ndata5/1000)) AS volume "
                    . "FROM NTPBundle:ParagonData p WHERE p.planDate >= :startDate AND p.ndata5<>0 GROUP BY Month(p.planDate) ORDER BY p.planDate")
            ->setParameter('startDate', $this->startDate->format('Y-m-d'));

【问题讨论】:

  • 你不能按你没有选择的列排序,我不认为,按月(日期)排序
  • ...当 GROUP BY(和 UNION 等)时

标签: php sql symfony dql


【解决方案1】:

对它进行正确排序,您必须命名选择,然后按此名称排序:

 $query = $this->em
            ->createQuery("SELECT Month(p.planDate) as monthPlan, SUM(ROUND(p.ndata5/1000)) AS volume "
                    . "FROM NTPBundle:ParagonData p WHERE p.planDate >= :startDate AND p.ndata5<>0 "
                    . "GROUP BY monthPlan "
                    . "ORDER BY p.planDate")
            ->setParameter('startDate', $this->startDate->format('Y-m-d'));

感谢提供线索

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-21
    • 2021-09-28
    • 1970-01-01
    • 1970-01-01
    • 2015-11-18
    • 2021-12-04
    • 1970-01-01
    相关资源
    最近更新 更多