这个sql在codeigniter中用$this->db->query()执行时出错,但在squelpro中执行成功

mpgws1up  于 2021-08-09  发布在  Java
关注(0)|答案(0)|浏览(231)
SET @tgl_awal = '2020-06-01 00:00:00'; 
SET @tgl_akhir = '2020-06-30 00:00:00'; 
SET @saldo_awal = CAST('50000000.00' AS DECIMAL(16,2)); 
SET @saldo_awal = @saldo_awal - IFNULL((SELECT SUM(IF(tipe = 'DEBET', nominal, nominal * -1)) 
FROM jurnal 
INNER JOIN jurnal_detail 
ON jurnal_id = jurnal.id 
WHERE tanggal < @tgl_awal AND akun = '1.1'), 0); 

SELECT ROUND(@saldo_awal + IFNULL((
    SELECT SUM(IF(JDX.tipe = 'DEBET', JDX.nominal, JDX.nominal * -1)) 
        FROM jurnal_detail JDX 
        INNER JOIN jurnal JX 
        ON JDX.jurnal_id = JX.id 
        WHERE JDX.akun = '1.1' AND JDX.id < JD.id AND JX.tanggal >= @tgl_awal), 0 ), 2) AS 'saldo_awal', (ROUND(@saldo_awal + IFNULL( (
            SELECT SUM(IF(JDX.tipe = 'DEBET', JDX.nominal, JDX.nominal * -1)) 
            FROM jurnal_detail JDX 
            INNER JOIN jurnal JX 
            ON JDX.jurnal_id = JX.id 
            WHERE JDX.akun = '1.1' AND (JX.tanggal < J.tanggal OR (JX.tanggal = J.tanggal AND JDX.id < JD.id)) AND JX.tanggal >= @tgl_awal), 0 ), 2) + 
            IF(JD.tipe = 'DEBET', JD.nominal, JD.nominal * -1)) AS 'saldo_akhir', JD.*, J.tanggal 
                FROM jurnal_detail JD 
                INNER JOIN jurnal J 
                ON JD.jurnal_id = J.id 
                WHERE akun = '1.1' AND J.tanggal >= @tgl_awal AND J.tanggal <= @tgl_akhir 
                ORDER BY J.tanggal ASC, JD.id ASC;

错误是您的sql语法有错误;查看与您的mysql服务器版本对应的手册,以了解“set@tgl_akhir='2020-06-30 00:00:00'附近使用的正确语法;设置@saldo\u awal=cast('',第2行)

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题