[ad_1]
私はこのテーブルを持っています:
テーブル名:セール
-----------------------------------------<br /> category | amount | currency |<br /> -----------------------------------------<br /> cat1 | 10,000 | USD |<br /> cat2 | 5,000 | EUR |<br /> cat3 | 15,000 | SAR |<br /> cat2 | 30,000 | USD |<br /> cat1 | 45,000 | SAR |<br /> cat3 | 7,000 | EUR |<br /> cat2 | 3,000 | EUR |
この結果を返すクエリ (SQL サーバー) が必要です。
-------------------------------------------------<br /> category | Total_USD | Total_EUR | Total_SAR |<br /> -------------------------------------------------<br /> cat1 | 10,000 | 0 | 45,000 |<br /> cat2 | 30,000 | 8,000 | 0 |<br /> cat3 | 0 | 7,000 | 15,000 |
私が試したこと:
私はこれを試しました:
SQL
SELECT S.[CategoryID] ,S.[CategoryName] ,(SELECT ISNULL(SUM([Amount]),0) FROM SALE WHERE [Currency] = 'USD' AND SALE.[CategoryID] = S.[CategoryID]) AS 'Total_USD' ,(SELECT ISNULL(SUM([Amount]),0) FROM SALE WHERE [Currency] = 'ERU' AND SALE.[CategoryID] = S.[CategoryID]) AS 'Total_ERU' ,(SELECT ISNULL(SUM([Amount]),0) FROM SALE WHERE [Currency] = 'SAR' AND SALE.[CategoryID] = s.[CategoryID]) AS 'Total_SAR' FROM Sale AS S GROUP BY S.[CategoryID],S.[CategoryName]
この結果を示すクエリ:
-------------------------------------------------<br /> category | Total_USD | Total_EUR | Total_SAR |<br /> -------------------------------------------------<br /> cat1 | 10,000 | 0 | 45,000 |<br /> cat2 | 30,000 | 8,000 | 0 |<br /> cat3 | 0 | 7,000 | 15,000 |<br /> cat4 | 0 | 0 | 0 |
私の質問は、上記の (cat4) のように、3 つの列がゼロの場合に (0) の値を回避する方法です。
解決策 1
1) 叫ばないで! すべての大文字を使用することは、インターネット上でシャウトと見なされ、失礼です。 適切なキーボードがあるので、適切な大文字と小文字を使用してください。
2) なぜそのデータがそれらの結果を与えるべきなのか、そしてあなたが望むものを達成するための「一般的なルール」が何であるかは少しでも明確ではありません – そしてそれがなければ、誰も本当にあなたを助けることはできません.
したがって、ルールを理解することから始めて、解決策を探す前に徹底的にテストしてください。
まず、GROUP BY 句をサブクエリとして見て、必要になると思われる集計データを取得します。
[ad_2]
コメント