2016-05-13 29 views
0

テーブルがあり、カラムの1つがGroupNameであるとします。ここだSQL - 0のカウントを返す方法

SELECT COUNT(*) c, GroupName 
FROM MyTable 
GROUP BY GroupName 

:A、B、またはCの私は、各グループのオブジェクトは、私のデータベースにあるどのように多くのクエリを実行したい場合は、私はこのような何かを実行することができます:各行は、この列の3つの値のいずれかを持つことができます私の問題:例えば、私はテーブル内の100個のオブジェクトを持っている、と75はCでBが25と0である場合、私はこのクエリを実行する場合、これを返します。

GroupName c 
-------------- 
A   75 
B   25 

をしかし、私はこのクエリを使用して金額を表示するためにSSRSテーブルにデータを入力しようとすると、実際に使用されているものだけでなく、のすべてのグループがグループに表示される必要があります。この例では、私はまだテーブルの3番目の行がCのために必要です。もし行がそこにあれば、私は0を入れる方法を知っています、例えば=IIf(Fields!c.Value = Nothing, "0", Fields!c.Value)ですが、上記の例では行を作成しません。上記の値が使用されていなくても、各値に対して行が作成されることをどのようにして保証できますか?

答えて

2

にも、あなたはあなたのテーブルのいずれかでなければなりませんグループCを、知っているので、あなたはこのような何かをする必要があります

select X.c, G.GroupName 
from 
groups G 
outer apply (
    SELECT COUNT(*) c, GroupName 
    FROM MyTable 
    GROUP BY GroupName 
) X on X.GroupName = G.GroupName 
+0

外WHEREサブクエリで使用してフィルタリングすることができます適用されます。..または代わりにLEFT JOINを代わりに使うべきです – JamieD77

+0

これは私のために働いた、 – thnkwthprtls

+0

@thnkwthprtls私たちは別のコンパイラを持っている必要があります:) – JamieD77

関連する問題