2017-02-01 4 views
0

私はそれを呼び出すときに私に問題を与えている以下のストアドプロシージャを持っています。 select文は単独で実行するとうまく動作し、ストアドプロシージャも作成されます。しかし、私が "コール();私は次のエラーを取得する:テーブルの作成時にMySQLエラーが発生しました。間違ったダブル値が切り捨てられましたか?

検索エラー - MySQLのデータベースエラー:切り捨てられた間違ったDOUBLE値: '0グラム'

これはストアドプロシージャです。潜在的にこのエラーを引き起こす可能性のあるものは誰にも見えますか?

DROP PROCEDURE IF EXISTS test.clients_shipments_with_line_weight_refresh_sp; 

CREATE PROCEDURE test.`clients_shipments_with_line_weight_refresh_sp`() 
BEGIN 
    DROP TABLE IF EXISTS clients_shipments_with_line_weight; 
    CREATE TABLE clients_shipments_with_line_weight 
    AS 
     (SELECT reg_client_shipments.*, 
       wow3.meta_value AS cannabis_type, 
       (wow2.meta_value * wp_wowcomm_order_itemmeta.meta_value) 
       AS total_line_item_weight, 
       pm3.meta_value AS province 
     FROM clients_shipments 
      INNER JOIN wp_postmeta pm2 
       ON clients_shipments.ID = pm2.post_id 
      INNER JOIN wp_postmeta pm3 
       ON  clients_shipments.ID = pm3.post_id 
        AND pm3.meta_key = 'statedeliver' 
      INNER JOIN wp_wowcomm_order_items 
       ON  wp_wowcomm_order_items.order_id = 
         clients_shipments.ID 
        AND wp_wowcomm_order_items.order_item_type = 
         'product' 
      INNER JOIN wp_wowcomm_order_itemmeta 
       ON  wp_wowcomm_order_items.order_item_id = 
         wp_wowcomm_order_itemmeta.order_item_id 
        AND wp_wowcomm_order_itemmeta.meta_key = 'weight' 
      INNER JOIN wp_wowcomm_order_itemmeta wow2 
       ON  wp_wowcomm_order_items.order_item_id = 
         wow2.order_item_id 
        AND wow2.meta_key = 'amount' 
      INNER JOIN wp_wowcomm_order_itemmeta wow3 
       ON  wp_wowcomm_order_items.order_item_id = 
         wow3.order_item_id 
        AND wow3.meta_key = 'producttype' 
     GROUP BY wp_wowcomm_order_itemmeta.meta_id); 
END; 
+1

使用しているテーブルの定義が表示されますか? – Alfabravo

答えて

0

この回答は、where節またはon節の数値または文字列を比較している可能性があることを示しています。

https://stackoverflow.com/a/16069446/409556

あなたはそれがちょうどそれをやっても、かなりのようなステートメントが見えます選択します。 OPは厳格な削除を提案しているので警告に変わります。

+0

なぜselectが動作するのですが、createテーブルを呼び出さないのは意味がありますか?テンポラリテーブルを作成することもできます – choloboy

+0

うまくいくかもしれません。あなたの最善の策は、それぞれの列の種類が、列のそれぞれに対して設定されていることを確認することです。 テーブルを作成してから、[選択]を使用してデータを入力してみてください。 selectを使用してテーブルを作成する行為は、データ変換を行わなければならない場合は、2つにすぎません。 – hayres

関連する問題