0

この投稿が重複しているかどうかはわかりません。誰かが作成した php ファイルを見つけましJQuery DataTableた (開発者がどこにいるのかわかりません)。

クライアント側

サーバ側

このクエリの機能は、データベース内のデータを表示することです。クエリは次のようになります。

case 'average' :
                $needfieldname=false;
                $month=getVar('calcmonth');
                $sql="SELECT SQL_CALC_FOUND_ROWS ID,name,remark,avrusepmonth 
                , CONCAT('<input type=''checkbox''id=''cb' , ID ,''' name=''check[]'' value=''',ID,''' >'
                ,'<label class=''lbcb'' for=''cb', ID,'''><=update=</label>') as checkb 
                , moq, leadtime 
                FROM test_media ";
                break;

ここで聞きたいのはこの部分です:

monthavrage(ID,".$month.") as latestavr

上記のクエリでの Mysql 関数の種類は何ですか? 次のようなエラーが発生した原因:

FUNCTION TestMediaControl.monthavrage does not exist
4

2 に答える 2

0

monthavrage 関数を宣言する SQL ファイルを見つけました。このファイルを実行するだけでいいので、問題はなくなりました。

USE testmediacontrol;

DROP FUNCTION IF EXISTS  monthavrage;


delimiter //

CREATE FUNCTION monthavrage (mediaID MEDIUMINT ,amonth DECIMAL(2)) RETURNS DECIMAL(6,2)
BEGIN
        DECLARE avguse DECIMAL(6,2);
        DECLARE howlongmonth DECIMAL(2);

        SELECT DATEDIFF(NOW(),startuse)/30.4 
            INTO howlongmonth from media_use 
            WHERE media_ID=mediaID
            ORDER BY startuse 
            LIMIT 0,1;
        IF howlongmonth < amonth THEN
            SET amonth=howlongmonth;
        END IF;
        IF amonth <= 0 THEN
            RETURN 0;
        END IF;
        SELECT count(*)/amonth 
            INTO avguse from media_use 
            WHERE media_ID=mediaID and startuse  BETWEEN SUBDATE(now(),INTERVAL 6 MONTH) and  now();
        RETURN avguse;
END
于 2012-09-07T04:31:47.650 に答える
0
FUNCTION TestMediaControl.monthavrage does not exist

関連するエラー コードが 1305 の場合、MySQL がストアド プロシージャ 'monthavrage' を探しているが、見つからないことを意味します。

于 2012-08-29T04:38:53.710 に答える