2014-01-19 250 views
0

我一直在试图执行下面的查询没有任何运气。它说:phpmyadmin - 错误的sql查询

#1064 - 你的SQL语法有错误;检查手册中 对应于你的MySQL服务器版本正确的语法在第32行

我无法指出任何错误使用 “”附近。任何人都可以告诉我我在这里做错了什么?

DELIMITER $$ 
-- 
-- Procedures 
-- 
CREATE PROCEDURE `Acc_Ledger`(IN `startDate` VARCHAR(200), IN `endDate` VARCHAR(200), IN `p_id` INT) 
BEGIN 
    DECLARE RunningTotal, deb, cred DECIMAL(19,2); 
    DECLARE counter, row_count int; 

    SET RunningTotal = 0; 
    SET counter = 1; 

    DROP TABLE IF EXISTS LedgerTbl; 

    CREATE TEMPORARY TABLE LedgerTbl (CTR int primary key auto_increment, PARTY_ID INT,VRDATE VARCHAR(200),VRNOA VARCHAR(200),ETYPE VARCHAR(50),DESCRIPTION VARCHAR(500),DEBIT DECIMAL(19,2),CREDIT DECIMAL(19,2),RTotal DECIMAL(19,2)); 

    INSERT INTO LedgerTbl 
    SELECT null, PARTY_ID,VRDATE,DCNO,ETYPE,DESCRIPTION,DEBIT,CREDIT, null FROM pledger WHERE PARTY_ID=p_id AND DATE(VRDATE) BETWEEN startDate AND endDate 
    ORDER BY VRDATE,ETYPE,DCNO; 

    SET @RunningTotal := 0; 

    SELECT SUM(DEBIT)-SUM(CREDIT) FROM pledger WHERE DATE(VRDATE) < startDate AND party_id = p_id INTO @RunningTotal; 

    IF ISNULL(@RunningTotal) THEN 
     SET @RunningTotal := 0; 
    END IF; 

    UPDATE LedgerTbl 
    SET RTotal = (@RunningTotal := @RunningTotal + (DEBIT - CREDIT)); 

    SELECT * FROM LedgerTbl; 
END$$ 

回答

0

我错过

DELIMITER ; 

在查询结束。增加了这一点,一切工作正常。