カウント: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
感謝を再び!
ここで何度も解いた。 "ピボット"または "カウント"( "値" = 1、1終了の場合) "1"、... ' – shawnt00
@ shawnt00 ..のいずれかを回答として投稿する必要があります。 –
なぜSQL内でデータが変換される必要がありますか? UIがそれをあなたのためにしてくれませんか?もしそうなら、単純な集約が機能します!動的に行う必要がある場合は、動的SQLを使用する必要があります。例:http://stackoverflow.com/questions/10404348/sql-server-dynamic-pivot-query – xQbert