2016-06-13 7 views
1

私は、ユーザーが列を渡しますSQLHirearchialダイナミックグループ化は

にグルーピング・セットを使用してhirearichialレポートを作成しようとしていますが、ストアドプロシージャなどのため

にカンマ区切りのパラメータとしてグループ化されます。

@grouplist='Country,Region,DeptNo' 

dynamic.Itになりますグループ化する列が格納procedure.iにパラメータとして送信されます。ユーザーはDEPTNO で、その後、その後地域によって国によってグループに必要ならば、彼は、例えばのためのパラメータとして送信されます使用することはできませんSRS reports.Thisは

Actual Output Needed

が必要と私は取得しています出力は

Current Output

実際の出力以下の通りであるレポート

--select Country,region,Deptno , Count(EmpNo) EmpCount, 
--Sum(Sal) Total, GROUPING_ID(Country, region,Deptno) AS GrpLevel 
--from emp 
--group by GROUPING SETS((Country,region,Deptno),(Country,Region),(Country) ,()) having country is not null 

DECLARE @sql NVARCHAR(MAX) = N'select '[email protected] +' , Count(EmpNo) EmpCount, 
Sum(Sal) Total, GROUPING_ID(' + @grouplist + ') AS GrpLevel 
from emp 
group by GROUPING SETS(' [email protected] +' ,()) having country is not null 
order by ' + @grouplist 

-- Select @sql 

EXEC sp_executesql @sql; 

を生成するために使用されるクエリです単一の列に列ごとに出力を表示するオプションがあります。ここで問題は列ごとにグループ化されていることですストアドプロシージャのパラメータとして設定します。 助けていただければ幸いです。

サンプルデータが

Sample data

+0

サンプルデータを投げるのに気をつけますか?動的SQLは必要ありません。ロールアップでグループ化できます。 – KumarHarsh

+0

@kumarHarshグループ化される列は、ユーザーによって送信されます。なぜあなたは既にExcelを使用しているので、なぜそれが動的に作られたのですか? – user1554650

+0

@ user1554650あなたは単にグループ化されていない結果を返し、Excelのピボットテーブルを使ってグループ化するのはなぜですか? – Alex

答えて

0

次のようにただ一つの外側のクエリを記述しようとされています。私は、内側のクエリとしてSQL文を検討しています。

として#TEMPと

領域としてNULL国として 'インド' を選択し、CAST(NULL AS VARCHAR)DEPTNO として、empcountとして5、7875 Grptotal

としてUNION ALL

、DEPTNO として地域として 'カルナタカ'、CAST(NULL AS VARCHAR)、国としてempcountとして3 'インド' を選択し、5475 Grptotal

として

UNION ALL empcountとしてDEPTNO として

地域として 'カルナタカ'、国として 'インド' を選択し、CAST(VARCHAR AS 20)、1、2975 Grptotal

UNIONとしてALL

選択Grptotal

としてempcountとして国として「インド、DEPTNO として地域、(VARCHAR AS 30)CASTとして 'カルナタカ'、2、2500)

SELECT

COALESCE(X.deptno、X.Region、X.country)AS grpby、X.empcount、X。DUMMY

CROSS AS

FROM Grptotal

(リージョンAS NULL国AS

SELECT NULL、DEPTNO

AS NULL)が選択

を適用します

#TEMP

から国、地域、DEPTNO、empcount、Grptotal

クロスここに適用地域、動的に国を選択することで、DEPTNO

が私に教えてくださいxはクエリがある場合

+0

投稿をフォーマットできますか?読むのはとても難しいです。 – Alex