DQL:每个网上商店的groupBy子订单

时间:2016-12-05 14:34:21

标签: php symfony group-by dql

我正在尝试创建一个查询,它为我提供自上次调用此函数以来销售的所有商品。然后,这些项目将按照每个网上商店进行分类,并且会收到一封电子邮件,说明当天销售的内容。我还想借此机会参加这些网络商店可以加入的所谓类别。一个类别得到他自己的" webstore"所以在我们的例子中,我们可以轻松访问订单和其他功能,这是类似的。这样他们就可以收到一封电子邮件,显示已在所有网上商店销售的商品。

然后我想显示树枝,然后将其转换为pdf并作为附件发送并通过电子邮件发送。这个我几乎都有工作。我遇到的问题是我可以将这些项目放在子订单中并按网店显示。

webstore1:    披萨x2    汉堡x3

webstore2:   奶酪x2   披萨x2

    public function getWebstoresBatch($latestDate)
{
    $em=$this->getDoctrine()->getManager();
    $webstoreRepository = $em->getRepository(BaseController::WEBSTORE_REPOSITORY);

    $q = $webstoreRepository->createQueryBuilder('w')
        ->select('w, s, o' )
        ->setParameter('latestDate', $latestDate)
        ->innerJoin('w.sales', 's')
        ->where('w.sendBatchMail = true')           
        ->andWhere("s.date >= :latestDate");

        if('w.subscription_type == 4'){ //if webstore is a category-webstore
            $q->innerJoin('s.subOrders', 'o')
            ->innerJoin('o.webstore', 'ew') 
            ->groupBy('ew.name');
        }

    $q = $q->getQuery();

    $res = $q->getResult();

    return $res;
}

我尝试用1个查询完成所有操作,希望不要有太多重复的代码。但是我被困在这个阶段。每当我尝试运行此操作时,我会收到有关groupBy的以下错误:

SQLSTATE[42803]: Grouping error: 7 ERROR: column "r0_.id" must appear in the GROUP BY clause or be used in an aggregate function
LINE 1: SELECT r0_.id AS id_0, r0_.name AS name_1, r0_.description A.

我不确定我所尝试的内容是否可行,如果我应该将其设为2个函数或2个查询,我会这样做。

0 个答案:

没有答案