在yii2 sql查询中使用带sum函数的findBySQL不起作用

在yii2 sql查询中使用带sum函数的findBySQL不起作用,yii2,Yii2,我使用下面的查询来获取值的总和,但是在yii2中得到了错误 $sql = 'SELECT sum(bid_item.$quantity), bid_item.product_id FROM bid_item WHERE bid_item.product_price >=710 AND bid_item.product_id=2 GROUP BY bid_item.product_id'; $bidItem = BidItem::findBySql($sql)->all(); 可以

我使用下面的查询来获取值的总和,但是在yii2中得到了错误

$sql = 'SELECT sum(bid_item.$quantity), bid_item.product_id FROM
bid_item WHERE bid_item.product_price >=710 AND bid_item.product_id=2
GROUP BY bid_item.product_id'; 
$bidItem = BidItem::findBySql($sql)->all();

可以使用以下命令:

$command = Yii::$app->db->createCommand("SELECT sum(bid_item.$quantity), bid_item.product_id FROM bid_item WHERE bid_item.product_price >=710 AND bid_item.product_id=2 GROUP BY bid_item.product_id");
$result= $command->queryAll();

可以使用您的代码,但您必须这样更改:

$sql='选择sum(bid_item.$quantity)作为sum,bid_item.*'
.“来自投标项目”
.“其中bid_item.product_price>=710,bid_item.product_id=2”
.“按投标项目、产品编号分组”;
$bidItem=bidItem::findBySql($sql)->all();
并且在模型类
BidItem
中有一个
sum
属性

class BidItem扩展了ActiveRecord
{
公帑(港币);;
…模型的所有其他声明
}
bid_item.*
需要初始化
BidItem
模型的所有其他属性,而
sum(bid_item.$quantity)AS sum
是将可计算属性声明为的常规方法