1
複数の選択フィールドに奇妙な問題があります。 は、これが私のクエリです:Doctrine QueryBuilder - 複数選択フィールド
->select(
[
't1.id',
't2.id'
]
)
そして非常に奇妙な... これをこのような例
:
$query = $queryBuilder
->select(
[
'SUM(t1.quantity) AS quantity_t1',
't2.currency AS currency_t2',
'SUM(t1.amount - t1.promotionDiscount) AS amount_t1',
'SUM(ROUND((t1.amount - t1.promotionDiscount)/((100 + t2.tax)/100), 2)) AS amount_net',
'SUM(ROUND((t1.amount - t1.promotionDiscount)/'.EXCHANGE_RATE_GBP.', 2)) AS amount_gbp',
'SUM(ROUND(ROUND((t1.amount - t1.promotionDiscount)/'.EXCHANGE_RATE_GBP.', 2)/((100 + t2.tax)/100), 2)) AS amount_gbp_net'
]
)
->from(Sale::class, 't2')
->join(
SaleRow::class,
't1',
Join::WITH,
$queryBuilder->expr()->andX(
$queryBuilder->expr()->eq('t1.saleId', 't2.id')
)
)
->where(
$queryBuilder->expr()->between('t2.purchaseTime', ':start', ':end')
)
->andWhere(
$queryBuilder->expr()->in('t2.orderStatus', ':status')
)
->setParameters(
[
':start' => $startDate->format('Y-m-d H:i:s'),
':end' => $endDate->format('Y-m-d H:i:s'),
':status' => ['pending', 'shipped']
]
)
->getQuery();
$results = $query->getArrayResult();
クエリは動作しますが、私は私の選択の配列を変更する場合にのみ、作品:
->select(
[
'SUM(t1.quantity) AS quantity_t1',
'SUM(t1.amount - t1.promotionDiscount) AS amount_t1'
]
)
またこれも:
->select(
[
't2.currency AS currency_t2',
]
)
しかし...これは動作しません:
->select(
[
'SUM(t1.quantity) AS quantity_t1',
't2.currency AS currency_t2',
]
)
なぜ?
okありがとうございます。しかし、非集約セレクトライン(currency_t2としてのt2.currency)を削除しても、それは動作しません... – goldlife
エラーは何ですか? – Alsatian
私はdoctrineから例外があります... "予想される既知の関数は丸みを帯びています" – goldlife