0
この方法でストアドプロシージャからテンポラリテーブルを作成しようとしています。MySQL StoredProcedureで一時テーブルを作成すると、そのテーブルは存在しません。
CREATE TEMPORARY TABLE IF NOT EXISTS tempUvozTB engine = memory AS
(
SELECT
`rnuvozstavke`.`BrojRacuna`,
`pfrnstavke_i`.`TB`,
`pfrnstavke_i`.`Kolicina`,
`pfrnstavke_i`.`Tezina`,
`pfrnstavke_i`.`Vrijednost`,
`rnuvozstavke`.`Kolicina` AS UvozKol
FROM
`pfracun_i`
INNER JOIN `pfrnproizvodi_i` ON `pfracun_i`.`BrojRN` =
`pfrnproizvodi_i`.`BrojRacuna` AND `pfracun_i`.`Godina` =
`pfrnproizvodi_i`.`Godina`
INNER JOIN `pfrnstavke_i` ON `pfrnproizvodi_i`.`BrojRacuna` =
`pfrnstavke_i`.`BrojRacuna` AND `pfrnproizvodi_i`.`Godina` =
`pfrnstavke_i`.`Godina`
INNER JOIN `rnuvoz` ON `pfracun_i`.`BrojOdobrenja` = `rnuvoz`.`VezaKupca`,
`rnuvozstavke`
WHERE
`pfracun_i`.`BrojOdobrenja` = pBrojOdobrenja AND
`rnuvozstavke`.`BrojRacuna` = pBrojRN
GROUP BY
`pfrnstavke_i`.`SifraSirovine`,
`pfracun_i`.`BrojOdobrenja`,
`pfrnstavke_i`.`TB`,
`rnuvozstavke`.`BrojRacuna`
);
SELECT tempUvozTB.TB, SUM(tempUvozTB.Kolicina * tempUvozTB.Tezina * tempUvozTB.UvozKol) AS UkTezina, SUM(tempUvozTB.Vrijednost * tempUvozTB.UvozKol) AS UkVrijednost from tempUvozTB GROUP BY tempUvozTB.TB;
DROP TEMPORARY TABLE IF EXISTS tempUvozTB;
しかし、mydatabase.tempuvoztbが存在しないようなエラーが表示されます。私は間違っているの?
に役立つかもしれないが、あなたのためにこのリンクを発見しました。また、ストアドプロシージャの内部にないときに、これがどのように動作するのか分かりません... – Josef
今、私は行DROP TEMPORARY TABLE IFが存在することを追加しましたtempUvozTB;私は一時テーブルを作成する前に、その後私は新しい問題が発生します。 where句のパラメータは認識されません。私はUnknowカラム 'pBrojOdobrenja'のようなエラーを 'where句' – Josef