0


0

私の問題は、このアプリケーションが多くの異なる支払いオプションを念頭に置いてデプロイされていることであり、それらの支払いオプションはデプロイごとに異なります。

私の質問は、どうすれば一連の結果を私の選択ステートメントにすることができるのですか?

queryFields FROM transaction_paymentsからSELECT DISTINCT(CONCAT( 'SUM(IF(pay_type = "'、pay_type、 '"、pay_amt、0))AS' '、pay_type、' '')まで);

これは私にこの結果を貸す:

SUM(IF(pay_type = "現金"、pay_amt、0))AS '現金'、SUM(IF(pay_type = "クレジットカード"、pay_amt、0))AS 'クレジットカード' SUM(IF(pay_type = "割引%) "、pay_amt、0))AS`割引% `、SUM(IF(pay_type ="ギフトカード "、pay_amt、0))AS`ギフトカード `SUM(IF(pay_type ="クーポン "、pay_amt、0))AS `クーポン` SUM(IF(pay_type = "商品券"、pay_amt、0))としてAS `商品券` SUM(IF(pay_type = "割引額"、pay_amt、0))AS `割引額。

それが次のクエリの私のselect文になりますが、これを行うためのコードはかなり面倒です。 私はこれがアプリケーションコードの助けを借りずに単一のクエリで実行できるかどうかを知りたいです。

1 Answer


0


SQLを構築するためにSQLを使用する? ええと。 シャダー

私はあなたのアプローチが間違っていることを提案するでしょう。 すべてを1行にまとめるのではなく、複数行にまとめる必要があります。

pay_typeでtransaction_paymentsグループからpay_amtとしてpay_type、sum(pay_amt)を選択します。

それを横の表にしたい場合は、ホスト言語で行ってください。

さらに別のクエリでこれを使用しようとしている場合は、さらにコンテキストを指定する必要があります。