Php 如何在codeigniter 2.1中执行此sql查询

Php 如何在codeigniter 2.1中执行此sql查询,php,mysql,codeigniter,Php,Mysql,Codeigniter,我在使用codeigniter 2.1时,发现了关于SQL版本的错误 我真的需要执行这个代码..但是怎么做呢 错误显示为: 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 'SELECT rt.srt_id, rt.pub_id, d.sd_date, CASE WHEN d.s

我在使用codeigniter 2.1时,发现了关于SQL版本的错误 我真的需要执行这个代码..但是怎么做呢

错误显示为:

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 'SELECT rt.srt_id, rt.pub_id, d.sd_date, CASE WHEN d.sd_doc != '' THEN d' at line 2

SET @i = 0.0; SELECT rt.srt_id, rt.pub_id, d.sd_date, CASE WHEN d.sd_doc != '' THEN d.sd_doc END sd_doc, rt.total_sales, @i + rt.total_sales AS Cumulative_Total, @i:= CASE WHEN d.sd_doc = '' THEN @i + rt.total_sales ELSE 0 END AS Increment FROM d_statistics_report_temp rt INNER JOIN d_statistics_docs d ON rt.pub_id = d.sd_pub AND rt.sal_must_pay_date = d.sd_date ORDER BY rt.pub_id, d.sd_date;

Filename: C:\xampp\htdocs\ebook\system\database\DB_driver.php

Line Number: 330
SQL查询是:

 $result = $this->db->query(
            "SET @i = 0.0;
           SELECT   rt.srt_id,
                           rt.pub_id,
                           d.sd_date,
                           CASE WHEN d.sd_doc != '' THEN d.sd_doc END sd_doc,
                           rt.total_sales,
                           @i + rt.total_sales AS Cumulative_Total,
                           @i:= CASE WHEN d.sd_doc = '' THEN @i + rt.total_sales ELSE 0 END AS Increment
           FROM d_statistics_report_temp rt
                           INNER JOIN d_statistics_docs d
                                   ON rt.pub_id = d.sd_pub
                                   AND rt.sal_must_pay_date = d.sd_date
           ORDER BY rt.pub_id, d.sd_date; "
        );

这不是特定于CodeIgniter的,消息中说要检查手册中的MySQL版本。无论如何CASE语句和字段别名之间缺少“AS”?不…代码在sql FIDLE中运行良好,在本地主机的phpmyadmin中运行良好..CodeIgniter的问题不在CodeIgniter中,但我一开始没有注意到什么-您试图一次执行两个查询,这是不可能的。执行
$this->db->query('SET@i=0.0;'),然后是单独的
query()
@Narf中的其余部分。我不确定这是否可行,因为第一个查询是设置一个临时变量,但下一个查询将无法使用它。如何使所有这些代码一起工作,因为代码是相关的