2016-11-07 8 views
0

カウント:SQL Serverの - すべての可能な値を表示し、私は次の表を持ってゼム

IdSce Year NoIte Value 
1  0 1  1 
1  0 2  5 
1  0 3  1 
1  1 1  2 
1  1 2  3 
1  1 3  2 
2  0 1  4  
2  0 2  4 
2  0 3  1 
2  1 1  2 
2  1 2  4 
2  1 3  3 

私はIdSceや年によってグループ化すると、それぞれの可能な値を示し、それぞれの値が次のように表示されますどのように多くの時間を数えます:

IdSce Year Value1 Value2 Value3 Value4 Value5 
1  0 2  0  0  0  1 
1  1 0  2  1  0  0 
2  0 1  0  0  2  0 
2  1 0  1  1  1  0 

ありがとう!

EDIT

shawnt00は私が欲しいものには本当に近いですが、私は列ための10の異なる値を持っている場合、私は意味し、可能な限りダイナミックにそれを行うために探しています、私は次のようになります私のテーブルに情報がありません。私は10の異なる値を持っている場合ので、私はしたい10個の新しい列(値1、値2、...、value10)

これは私がこれまで試したものです:助けを

SELECT IdSce 
     ,Year 
     ,SUM(CASE WHEN Value >= 0 and Value < 1 THEN 1 else 0 end) Zero 
     ,SUM(CASE WHEN Value >= 1 and Value < 2 THEN 1 else 0 end) One 
     ,SUM(CASE WHEN Value >= 2 and Value < 3 THEN 1 else 0 end) Two 
     ,SUM(CASE WHEN Value >= 3 and Value < 4 THEN 1 else 0 end) Three 
     ,SUM(CASE WHEN Value >= 4 and Value < 5 THEN 1 else 0 end) Four 
     ,SUM(CASE WHEN Value >= 5 THEN 1 else 0 end) FiveMore 
     ,SUM(CASE WHEN Value >= 0 THEN 1 else 0 end) Total 
FROM Table 
GROUP BY IdSce 
      ,Year 

感謝を再び!

+4

ここで何度も解いた。 "ピボット"または "カウント"( "値" = 1、1終了の場合) "1"、... ' – shawnt00

+0

@ shawnt00 ..のいずれかを回答として投稿する必要があります。 –

+0

なぜSQL内でデータが変換される必要がありますか? UIがそれをあなたのためにしてくれませんか?もしそうなら、単純な集約が機能します!動的に行う必要がある場合は、動的SQLを使用する必要があります。例:http://stackoverflow.com/questions/10404348/sql-server-dynamic-pivot-query – xQbert

答えて

3

よろしくお願いいたします。

select IdSce, "Year" 
    count(case when Value = 1 then 1 end) as "1", 
    count(case when Value = 2 then 1 end) as "2", 
    count(case when Value = 3 then 1 end) as "3", 
    count(case when Value = 4 then 1 end) as "4", 
    count(case when Value = 5 then 1 end) as "5" 
from T 
group by IdSce, "Year" 

「条件付き集計」に記載されていることがよくあります。 SQL Serverには、それを調べたい場合はpivotを使用する独自の構文があります。

+0

はい、回答してくれてありがとう、私はそれを試しましたが、私は可能な限り動的にしたいと思っています。 可能なすべての値を表示し、そこにいくつあるかを数えたいので、10個の異なる値がある場合は、10個の新しい列が必要です。 編集を追加します。 – luisarcher

+0

他のツールを使用しない限り、ダイナミックピボットは一般的にダイナミックSQLを含みます。あなたは、その問題とその解決策をそのキーワードとともに見つけるでしょう。 – shawnt00

関連する問題