gpt4 book ai didi

php - 如何在 yii 中运行累积派生查询

转载 作者:行者123 更新时间:2023-11-29 00:31:06 25 4
gpt4 key购买 nike

我有一个包含 3 个字段(id、jobsprocess、百分比)的表,我想即时计算累积百分比,所以它是一个派生字段。

在 sql 中我会这样做,它返回 13 条记录。

set @x := 0;
SELECT ID, jobsprocess, PERCENT, (@x := @x + PERCENT) AS cumaltive
FROM `hdb`.`lookupprocess`
inner join jobsprocess on jobprocess = process_id
where projid = 1302035
order by id

我如何在 yii 中执行此操作?到目前为止,我有以下内容,但没有给我想要的结果

$lastrun = Yii::app()->db->createCommand("
SELECT ID, jobsprocess, PERCENT , (:criteria = :criteria + PERCENT) AS cumulative
FROM `hdb`.`lookupprocess`
inner join jobsprocess on jobprocess = process_id
where projid = $projid
order by id " )->queryAll(true, array(':criteria'=>0));

返回 13 条记录,但累积始终为 0。

我也试过 th3e 以下但我得到一个错误

$user = Yii::app()->db->createCommand()
->select('ID, jobsprocess, PERCENT , (:zero := (:zero + PERCENT)) AS cumulative')
->from('lookupprocess')
->join('jobsprocess','jobprocess = process_id')
->where('projid = :projid', array(':projid'=>$projid,':zero'=>0))

->queryAll();

它接受 :zero 作为字符串。

CDbCommand failed to execute the SQL statement: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ':= ('0' + PERCENT)) AS cumulative
FROM `lookupprocess`
JOIN `jobsprocess` ON job' at line 1. The SQL statement executed was: SELECT ID, jobsprocess, PERCENT , (:zero := (:zero + PERCENT)) AS cumulative
FROM `lookupprocess`
JOIN `jobsprocess` ON jobprocess = process_id
WHERE projid = :projid

最佳答案

您可以在查询的 FROM 部分声明您的 SQL 变量:

SELECT ID, jobsprocess, PERCENT, (@x := @x + PERCENT) AS cumaltive
FROM `hdb`.`lookupprocess`, (SELECT @x=0) q
inner join jobsprocess on jobprocess = process_id
where projid = 1302035
order by id

所以,像这样:

$lastrun = Yii::app()->db->createCommand("
SELECT ID, jobsprocess, PERCENT , (@x := @x + PERCENT) AS cumulative
FROM `hdb`.`lookupprocess`, (SELECT @x:=0) q
inner join jobsprocess on jobprocess = process_id
where projid = $projid
order by id " )->queryAll();

关于php - 如何在 yii 中运行累积派生查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16464414/

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