gpt4 book ai didi

zend-framework - Zend DB 表摘要

转载 作者:行者123 更新时间:2023-12-04 04:28:27 36 4
gpt4 key购买 nike

我在将 SQL 查询转换为合适的 ORM 查询时遇到了一些困难

即使在 SQL 术语中查询也相当复杂,但我正在寻找将其整理成 ORM 查询的方法,因为我正在将我在 Flex 中生成的许多函数转换为 Zend 框架模型以供将来验证和API 用途。

目前平面SQL如下:

SELECT subcategory_id, 
SUM(total) / (1+(YEAR(2011)*12+MONTH(1))-(YEAR(2011)*12+MONTH(12)))
AS monthly_average FROM aggr_subcategory WHERE user_id=1 AND month BETWEEN 01 AND 05
GROUP BY user_id, subcategory_id

我遇到的主要问题是 SUM,我可以在 ORM 中管理 GROUP 和 WHERE 子句,但无法在 DB Table Abstract 中获取总和。

非常感谢任何帮助或指出正确方向。

最佳答案

这个怎么样:

    $db = Zend_Db_Table::getDefaultAdapter();

$select = $db->select();

$dbExpr = new Zend_Db_Expr("SUM(total) / (1+(YEAR(2011)*12+MONTH(1))-(YEAR(2011)*12+MONTH(12))) AS monthly_average");

$select->from(
'aggr_subcategory',
array('subcategory_id', $dbExpr)
)->where('user_id = 1')
->where('month BETWEEN 01 AND 05')
->group(array('user_id', 'subcategory_id'));


echo $select->assemble();
exit;

结果:

SELECT `aggr_subcategory`.`subcategory_id`,
SUM(total) / (1+(YEAR(2011)*12+MONTH(1))-(YEAR(2011)*12+MONTH(12))) AS monthly_average
FROM `aggr_subcategory`
WHERE (user_id = 1) AND (month BETWEEN 01 AND 05)
GROUP BY `user_id`, `subcategory_id

`

关于zend-framework - Zend DB 表摘要,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6679698/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com