2017-12-06 12 views
0

地域内の業種の内訳を示す結果を作成しようとしています。結果は次のようになります。SQLでピボットテーブルのようなアイテムを作成しようとしています

Area   Industry     Number of sites 
000000  All industries      250 
000001  Industry 1(11 and 21)     22 
000001  Industry 2(23)      25 
...... 
000001  Industry 10 (81)      120 

上記が意味をなされるようにいくつかの背景。元のデータセットには、業界向けに6桁のコードがあります。最初の2桁に基づいてそれらを分解し、カスタムグループを作成します。 11と21は1つのグループなどです。個々の行を取得する方法を理解することはできますが、1つの結果に11行すべてを取得する方法を見つけるのには苦労します。私は11の個別のクエリを作成して実行することができますが、1つの結果を得ることを望んでいます。以下は、行の1つを取得するためのコードです。 JOINまたはUNIONのコマンドまたは演算子を使用する場所ですか?

SELECT 
[Area], 
COUNT(*) AS [Number of Sites] 
FROM 
dbo.sizeclassreport 
Where area='000001' and (code like '11%' or code like '21%') 
GROUP BY 
[area] 

答えて

0

私はそれは単純なものだったが、インターネットの結果は紛らわしいと思っていました。すべてのクエリの間には "UNION ALL"が置かれています。

SELECT 
[Area], 
COUNT(*) AS [Number of Sites] 
FROM 
dbo.sizeclassreport 
Where area='000001' and (code like '11%' or code like '21%') 
GROUP BY 
[area] 
UNION ALL 
SELECT 
[Area], 
COUNT(*) AS [Number of Sites] 
FROM 
dbo.sizeclassreport 
Where area='000001' and (code like '23%') 
GROUP BY 
[area] 
UNION ALL 
SELECT 
[Area], 
COUNT(*) AS [Number of Sites] 
FROM 
dbo.sizeclassreport 
Where area='000001' and (code like '31%' or code like '32%' or code like 
'33%') 
GROUP BY 
[area] 
関連する問題