使用cakephp3的ORM的复杂子查询
我有一个相当复杂的幻想?查询,它在纯sql中工作,但我需要将其转换为与CakePHP3.0的orm一起使用 以下是查询: 选择用户id,countid/期间\u diffdate\u formatnow,“%Y%m”, 发送日期,发票中的平均值为%Y%m 发送到哪里!='0000-00-00“按用户id分组” 这就是我所尝试的:使用cakephp3的ORM的复杂子查询,orm,cakephp-3.0,Orm,Cakephp 3.0,我有一个相当复杂的幻想?查询,它在纯sql中工作,但我需要将其转换为与CakePHP3.0的orm一起使用 以下是查询: 选择用户id,countid/期间\u diffdate\u formatnow,“%Y%m”, 发送日期,发票中的平均值为%Y%m 发送到哪里!='0000-00-00“按用户id分组” 这就是我所尝试的: $monthly = $this->find() ->select(function ($query) { return [ 'us
$monthly = $this->find()
->select(function ($query) {
return [
'user_id',
'average' => $query->func()->extract(
'COUNT(Invoices.id)/PERIOD_DIFF(date_format(now(), "%Y%m"),
date_format(Invoices.sent, "%Y%m"))'
)
];
})
->where([
"Invoices.sent !=" => "0000-00-00",
])
->group('user_id');
问题是,我不确定我真正需要的提取方法是否可用,但我使用的是3.0
这是正确的方法吗?我能让它以某种方式与3.0兼容吗?或者我还能使用其他东西吗?升级到3.1是不可能的吗?不兼容性非常小…您的原始SQL查询不使用EXTRACT,所以为什么要尝试在查询生成器中使用EXTRACT?我无法升级到3.1,因为我以前遇到过问题]。无论如何,我已经设法使它与一个原始表达式一起工作:$query->newExpr->add'..。。升级到3.1是不可能的吗?不兼容性非常小…您的原始SQL查询不使用EXTRACT,所以为什么要尝试在查询生成器中使用EXTRACT?我无法升级到3.1,因为我以前遇到过问题]。无论如何,我已经设法使它与一个原始表达式一起工作:$query->newExpr->add'。