2016-11-29 3 views
1

私はグループ化したい場所で、各フィールドの値の数を表示するクエリがあり、UNIONには2番目のクエリが必要です。すべてのアイテムの数。ここに私の質問の要約があります。
フィールド値1の
値1 ================カウントをカウント=========カウントする:何をしたいていることは、これはあるMS ACCESS SQLグループとの結合方法総計を表示することによって

SELECT a.[Field to Count], Count(a.[Field to Count]) as Count 
FROM MyTable as a 
Where a.[Some Field] = "Value1" AND a.[Some other Field] <> "Some value" 
Group By a.[Field to Count] 
UNION 
SELECT "Grand Total", Count(*) 
FROM MyTable as a 
Where a.[Some Field] = "Value1" AND a.[Some other Field] <> "Some value" 
Group By ? 


Value2 ================ Count of Value2
Value3 ================ Count of Value3
"総計" =========カウントするすべてのフィールドの数

2番目のクエリでGroup Byがなければ、何も表示されないので、これを使用する必要があることがわかります。基本的に「Group By *」のようなもの

お勧めはありますか?

答えて

1

GROUP BYが2番目のクエリに必要なのか、それとも意味をなさないのか分かりません。私は総計最後を注文することができるようにUNIONに各サブクエリに計算列posを追加

SELECT t.label, t.count 
FROM 
(
    SELECT a.[Field to Count] AS label, 
      COUNT(*) AS count, 
      0 AS pos 
    FROM MyTable as a 
    WHERE a.[Some Field] = "Value1" AND a.[Some other Field] <> "Some value" 
    GROUP BY a.[Field to Count] 
    UNION 
    SELECT "Grand Total" AS label, 
      COUNT(*) AS count, 
      1 AS pos 
    FROM MyTable as a 
    WHERE a.[Some Field] = "Value1" AND a.[Some other Field] <> "Some value" 
) t 
ORDER BY t.pos, t.label 

注:代わりに、ちょうど総テーブル数を選択します。外側のクエリでは、結果セットには入れたくないので実際にはposを選択しないことに注意してください。

+0

ちょっとラインを何: '0 POS AS' と '1 POS AS' を実行? –

+0

@RobertMazurowski 'UNION'の各サブクエリに計算カラムを追加して、総計が最後に現れるようにします。これは既に元のクエリで発生している可能性がありますが、保証されていません。 –

+0

編集のおかげで、それは本当に良い答えです。 –

1

削減ティムの外側の選択が必要とされていないよう少し:

SELECT a.[Field to Count] AS label, 
     COUNT(*) AS [count], 
     0 AS pos 
FROM MyTable as a 
WHERE a.[Some Field] = "Value1" AND a.[Some other Field] <> "Some value" 
GROUP BY a.[Field to Count] 
UNION 
SELECT "Grand Total" AS label, 
     COUNT(*) AS [count], 
     1 AS pos 
FROM MyTable as a 
WHERE a.[Some Field] = "Value1" AND a.[Some other Field] <> "Some value" 
ORDER BY 2, 1 
+0

グスタフなぜ[]括弧で数えますか? –

+0

デザイナーがそれをしました。私はそれが予約語なので、私はクエリが実行されていないと信じていると思います。 – Gustav

+0

GustavのORDER BY部分は動作していないようですが、a.posはselect文の一部ではないと言われています。 –

関連する問題