-1

mysql でプロシージャを作成しましたが、プロシージャで何も選択できません。何が問題なのですか?

delimiter //
create procedure getLineStasticFreightList(in start int(4),in row int(4),in stationIDD varchar(4),in dateStart datetime,in dateEnd datetime)
BEGIN
DROP VIEW IF EXISTS rqusg_lineStasticFreightUser;
CREATE VIEW rqusg_lineStasticFreightUser AS 
SELECT a.id, c.stationName as station,b.name as track,sum(a.dddwTime) AS zgdddwsj, sum(a.ddzxTime) AS zgddzxsj, sum(a.zxzyTime) AS zgzxzysj, sum(a.ddzngyTime) AS zgddzngysj, sum(a.hcddqsTime) AS zgddqssj
FROM rqusg_line_yard a
 join rqusg_line_tracks b
   on a.track = b.id
 join rqusg_line_stations c
   on a.stationID =  c.stationID
WHERE a.stationID = 'stationIDD' and a.arriveTime >= 'dateStart'  and a.clczTime <= 'dateEnd'
group by a.track
union
select a.id,c.stationName as station,b.name as track,sum(a.dddwTime) as zgdddwsj,sum(a.ddzxTime) as zgddzxsj,sum(a.zxzyTime) as zgzxzysj,sum(a.ddzngyTime) as zgddzngysj,sum(a.hcddqsTime) as zgddqssj
from rqusg_line_yard a
 join rqusg_line_tracks b
   on a.track = b.id
 join rqusg_line_stations c
   on a.stationID =  c.stationID
WHERE a.stationID = 'stationIDD' and a.arriveTime >= 'dateStart' and a.clczTime <= 'dateEnd'
group by a.track;
select * from rqusg_lineStasticFreightUser LIMIT start,row;
END
//

私の手順では、ビューを作成し、ビューから詳細を選択しますが、何も選択できません.paramsに何か問題があると思いますが、よくわかりません.誰か助けてもらえますか?

4

2 に答える 2

0

この行でエラーが発生する可能性があります。これWHERE a.stationID = 'stationIDD' and a.arriveTime >= 'dateStart' and a.clczTime <= 'dateEnd'は、変数を変数ではなく定数文字列に変換する単一引用符を変数の周りに置いているためです。そのため、次のように変更します。

`WHERE a.stationID = stationIDD and a.arriveTime >= dateStart  and a.clczTime <=dateEnd`
于 2013-07-16T08:17:58.777 に答える
0

パラメータ変数を引用符で囲まないでください。

WHERE a.stationID = stationIDD and a.arriveTime >= dateStart  and a.clczTime <= dateEnd

ちなみに、UNION の両方のサブクエリは同じです。同じクエリが 2 回あるのはなぜですか?

于 2013-07-16T08:12:57.990 に答える