codeigniter 请帮助查询此数据库以获得SUM点

bejyjqdl  于 2022-12-06  发布在  其他
关注(0)|答案(2)|浏览(126)

我有表:
| 尼姆施特克尔斯|特姆斯特克尔斯|知识市场|销售商|
| - -|- -|- -|- -|
| 小行星2052|小行星2021|编码|2个|
| 小行星2052|小行星2021|编码解码器|三个|
| 小行星2052|小行星2021|编解码器|四个|
| 小行星2052|小行星2021|已编码|2(双)|
| 小行星2052|小行星2021|已编码|2(双)|
| 小行星2052|小行星2021|编码器|2个|
| 小行星2052|小行星2021|代码|5(双)|
| 小行星2052|小行星2021|代码|5(双)|
| 小行星2052|小行星2021|编码解码器|三个|
| 小行星2052|小行星2021|编解码器|四个|
| 小行星2052|小行星2021|已编码|2个|
| 小行星2052|小行星2021|编码器|2个|
我需要的结果是双数据中只有一个在求和:
$this-〉getskstotal(“20522001”)结果:13
$this-〉getsktotal(“20522002”)结果:16
我在codeigniter v3中的控制器是:

public function getskstotal($nim)
{
        $query = $this->db->query("select SUM(sksmktrkrs) as skstotal FROM rtrkrs WHERE nimhstrkrs = '".$nim."' GROUP BY kdkmktrkrs");
        foreach($query->result() as $value){
            $sks = $value->skstotal;
        }
        return $sks;    
}

但是结果和我需要的不一样。

jhdbpxl9

jhdbpxl91#

你应该先把结果区分开来,然后再求和。

select sum(sksmktrkrs) 
from (selec distinct nimhstrkrs, sksmktrkrs  from rtrkrs  WHERE nimhstrkrs = '".$nim."') 
GROUP BY kdkmktrkrs
rjjhvcjd

rjjhvcjd2#

我想这会对你有用:Demo

select
    sum("sksmktrkrs") 
from
    (
        select distinct
            "nimhstrkrs",
            "kdkmktrkrs",
            "sksmktrkrs" 
        from
            rtrkrs 
        WHERE
            "nimhstrkrs" = '".$nim."'
    )
;

相关问题