2017-09-27 13 views
0

卿を取得するには、クエリ結果の二つの画像 & 必要な出力と続きます。SQLクエリは、私のSQLクエリは、以下の、構造化された結果に

ご覧のとおり結果画像この出力から次のクエリを実行しています。

の2番目の画像があります。必要な出力です。私はその形式で出力を表示する必要があります。最初の部署名は先頭に&とする必要があります。プロジェクトの詳細はその部門に対応しています。各部門ごとに同じサイクルが繰り返されるはずです。

どうすればよいですか?

SQLコード:

DECLARE @ColName varchar(20)=null, 
     @Query varchar(MAX)=null, 
     @DepartmentName varchar(50)=null, 
     @deptt_code varchar(4)=null, 
     @DistrictId varchar(4)='0001', 
     @Deptt_Id char(4)=null, 
     @stYear varchar(4)=null, 
     @cYear varchar(4)=null, 
     @yr varchar(9)='2017-2018', 
     @tno int 

BEGIN 

set @stYear = SUBSTRING(@yr,0,5); 
set @cYear = SUBSTRING(@yr,6,4); 

--CREATE DYNAMIC TABLE WITH COLs 
DECLARE @DepartmentTable table 
(
    department_name varchar(50), 
    department_code varchar(4) 
); 
DECLARE @ProjectTable table 
(
    project_name varchar(130), 
    project_code varchar(15), 
    department_code varchar(4), 
    department_name varchar(50), 
    district_code varchar(4), 
    district_name varchar(30), 
    tehsil_code varchar(6), 
    tehsil_name varchar(30), 
    service_code varchar(3), 
    [service_name] varchar(30), 
    sector_code varchar(3), 
    sector_name varchar(30), 
    project_start_year varchar(8), 
    project_compl_year varchar(8), 
    financial_year varchar(9) 
); 

--Insert into Department Table 
INSERT INTO @DepartmentTable (department_code, department_name) 
select deptt_code,deptt_name+'('+ RTRIM(LTRIM(deptt_short))+')' as dept_name from m_Department 
    where deptt_code in (select distinct department_code from t_Project_Details where [email protected] 
    and [email protected]); 


--Insert into Project Table With Corresponding Department Name & Code 
    insert into @ProjectTable (
            department_code, 
            project_code, 
            project_name, 
            department_name, 
            district_code, 
            district_name, 
            tehsil_code, 
            tehsil_name, 
            service_code, 
            [service_name], 
            sector_code, 
            sector_name, 
            project_start_year, 
            project_compl_year, 
            financial_year 
            ) 
     SELECT pd.department_code, 
       pd.project_Code, 
       pd.project_name, 
       d.deptt_name, 
       pd.district_id, 
       di.district_name, 
       pd.tehsil_id, 
       t.tehsil_name, 
       pd.service_code, 
       s.[service_name], 
       pd.sector_code, 
       se.sector_name, 
       CONVERT(varchar,YEAR(pd.project_initiation_fin_from_yr)) + ' ' + CONVERT(varchar(3),pd.project_initiation_fin_from_yr,100) as project_start_year, 
       CONVERT(varchar,YEAR(pd.project_initiation_fin_to_yr)) + ' ' + CONVERT(varchar(3),pd.project_initiation_fin_to_yr,100) as project_compl_year, 
       pd.financial_year 

     FROM t_Project_Details pd 

     INNER JOIN m_Department d 
     ON d.deptt_code=pd.department_code 

     INNER JOIN m_Service s 
     ON s.service_code = pd.service_code 

     INNER JOIN m_Sector se 
     ON se.sector_code=pd.sector_code 

     INNER JOIN m_District di 
     ON di.district_code=pd.district_id 

     INNER JOIN m_Tehsil t 
     ON t.tehsil_code = pd.tehsil_id 

     WHERE 
       [email protected] and 
       [email protected]; 

--select all from Department Table; 
select * from @ProjectTable; 
END 

クエリ結果の画像:https://drive.google.com/open?id=0Bxn7UXgmstmRaS1qX21kbjlwZzg

必要な出力画像:https://drive.google.com/open?id=0Bxn7UXgmstmRekJkUWhBcmNCbk0

+0

実際のテキストコードの代わりにイメージを含めないでください。また、あなたの質問は非常に長く、実際の問題がどこにあるか教えてくれるのはあなたの仕事です。 –

+0

先生、私が持っている画像には、私が得たものと私が必要としたものを示すだけです。 –

+0

問題は、出力イメージで指定したとおりに出力を指定されたフォーマットで取得できないことです。それは達成可能ですか? –

答えて

0

あなたに必要な出力は、プレゼンテーション層の問題です。 SQLは結果を返すことができますが、1つの行に1つのものを含めることはできず、行にはさまざまな形式のさまざまなものが含まれます。

SQL結果セットには、同じデータ型を持つすべての行に同じ数の列が含まれます。

SSRSのようなものを使用して、あなたの欲望の出力を達成してください。