2012-04-01 17 views
-1

私は見やすい状況ですが、とにかく解決できません。問題は、条件に基づいて異なる列名header(値ではない)が必要なことです。私は次のようにしたい:mysqlの条件付きカラムヘッダー

SELECT DISTINCT (CASE bool_var WHEN 1 
           THEN SUM(r.amount_dbl) AS RECEIVED 
           ELSE "0" AS Issued END) 
FROM table 

それは可能ですか?この点で助けてください。

+0

は、あなたの 'bool_var'はリーチ行によって変化していますか? –

+0

なぜ行で集計しようとしていますか?列名の問題がなくてもクエリが奇妙に見えます。 – frail

+0

両方の列を持つのはどうですか? – newtover

答えて

0

いいえ、これはできません。

各行に異なる名前を付けることはできません。

+0

いいえ、実際は列の値です。 – sarwar026

0

いいえ、条件付き列のタイトルを設定することはできません。 case-functionは、行ごとに動作しています。行1,3と5がヘッダー "奇数"を生成し、行2,4と6がヘッダー "偶数"を生成する場合、列タイトルは何ですか?

1

いいえ、 "case"文の中にdiffirentカラム名を持つことはできません。しかし、私があなたのクエリについてコメントしたところでは、ちょっとしたこともあるようです。ちょうど野生の推測が、これを達成しようとしていますか? :

SELECT 
    (CASE bool_var WHEN 1 THEN "RECEIVED" 
    ELSE "ISSUED" END) as condition, 
    SUM(r.amount_db1) as condition_sum 
FROM table r 
GROUP BY bool_var 

編集:この1つは、醜い遅いとSQLクエリの意味で間違っているが、ここでそれが行く :

SELECT 
    SUM(amount_db1) AS RECEIVED, 
    (SELECT SUM(amount_db1) FROM table WHERE bool_var != 1) AS ISSUED 
FROM table 
WHERE bool_var = 1 
+0

あなたの解決策は2行、1つは「受信済み」、もう1行は「発行済み」と返されているようです。しかし私の目的は同じ行にそれを示すことです。それは問題です。あなたの時間をありがとう、しかし、私は今まで問題に陥っています。 – sarwar026

+0

あなたの努力に感謝します。私は本当にばかだ。動的ヘッダー名は必要ありません。ただ見つけました。私は2つの列を表示する必要があるので、静的な名前を持つこともできます。皆さん本当に申し訳ありません。 – sarwar026