次のような合計関数を作成しようとしています。
sum(case when (tblhistorique.REMARQUE LIKE "Added to operation cost%" OR tblhistorique.REMARQUE LIKE "Added to operational cost%")
then CAST(int, substring_index( LTRIM(substring_index(tblhistorique.REMARQUE, 'Qty:', -1)), '.', 1))
when (tblhistorique.REMARQUE LIKE "Removed from operation cost%" OR tblhistorique.REMARQUE LIKE "Removed from operational cost%")
then CAST(int, substring_index( LTRIM(substring_index(tblhistorique.REMARQUE, 'Qty:', -1)), ' ', 1))*(-1) else 0 end)
それが本質的に行うことは、REMARQUE列にあるステートメントの種類をテーブルに確認することです。追加された場合はQTYを追加し、削除された場合はQTYを差し引きます。
文字列から QTY を取得するには、substring_index などで表示される文字列操作を少し行う必要がありました。それはうまくいくようです。
2 つの質問があります。SQL で数値の文字列の合計を計算できますか? そして、この関数を使用する方法の何が問題になっていますか?