2017-07-31 6 views
0

私は(Developer Expressを使用して)プルするデータを使用してグラフを作成するためにデータベースに対してクエリを実行しようとしています。 そして私は私が現在持っているもののバックで取得このテーブルを持っています。データはMYCOUNTとターンのすべてのインスタンスのフィールド値をプルするため列にフィールド値を作成するTSQL

enter image description here

しかし、私は何をしたいです

SELECT 
    'Approval Progress' AS ACTIVITY, 
    CASE STATUS 
     WHEN 0 THEN 'NO ACTION' 
     WHEN 1 THEN 'PENDING' 
     WHEN 2 THEN 'APPROVED' 
     WHEN 3 THEN 'REJECTED' 
     ELSE 'ERROR' 
    END AS APRV, 
    COUNT(*) AS MYCOUNT, 
    4 AS TOT0, 8 AS TOT1, 3 AS TOT2 
FROM 
    IT_PROJAPPROVEWIP AS IT_PROJAPPROVEWIP_1 
GROUP BY 
    STATUS 
0123:

enter image description here

これは、クエリのコードです。このような自分の人口の列にそれら

ありがとうございました!それを行うには

+1

ではなく、あなたが何データベースサーバーを使用している画像 – yanman1234

+0

を参照するよりも、コードおよび期待される出力/入力を入力してください? –

答えて

1

一つの方法は、各ステータスに参加し、クロスを使用している:

SELECT * 
FROM 
    (SELECT 'Approval Progress' AS ACTIVITY, 
      CASE STATUS 
       WHEN 0 THEN 'NO ACTION' 
       WHEN 1 THEN 'PENDING' 
       WHEN 2 THEN 'APPROVED' 
       WHEN 3 THEN 'REJECTED' 
       ELSE 'ERROR' 
      END AS APRV, 
      COUNT(*) AS MYCOUNT 
    FROM IT_PROJAPPROVEWIP AS IT_PROJAPPROVEWIP_1 
    GROUP BY STATUS)a 
CROSS JOIN 
    (SELECT COUNT(*) AS Tot0 
    FROM IT_PROJAPPROVEWIP 
    WHERE STATUS = 0) b 
CROSS JOIN 
    (SELECT COUNT(*) AS Tot1 
    FROM IT_PROJAPPROVEWIP 
    WHERE STATUS = 1) c 
CROSS JOIN 
    (SELECT COUNT(*) AS Tot2 
    FROM IT_PROJAPPROVEWIP 
    WHERE STATUS = 2) d 
CROSS JOIN 
    (SELECT COUNT(*) AS Tot3 
    FROM IT_PROJAPPROVEWIP 
    WHERE STATUS = 3) e 
+0

これはまさに私が探していたものですが、約2時間のグーグルで私は何も見つかりませんでした。ありがとうございました!あなたは自分が何をしたのかを説明することができますか?私はこれを自分で行う方法を学ぶことができますか? –

+0

基本的には、サブクエリの各ステータスIDのカウントを計算してから、クロスジョインを使用して元のデータセットにジョインします。クロスジョインの詳細については、http://www.w3resource.com/sql/joins/cross-join.phpを参照してください。 –