0

人口情報を示すテーブル DemographicDetails があります。フィールドは

  • ID - 一意の ID フィールド (自動インクリメント)
  • 人口 - 整数
  • SurveyDate - 日時フィールド
  • City - 都市を示す varchar フィールド
  • 状態 - varchar
  • 地域 - 南/北

人口の詳細を以下の形式で表示するレポートが必要です

India              Current Yr Figure        PreviousYr Figure   
State_1            X,XX,XX,XXX              XX,XX,XXX 
State_2            X,XX,XX,XXX              XX,XX,XXX 
State_3            X,XX,XX,XXX              XX,XX,XXX 

以下のクエリで試しました:

WITH cte AS (
    SELECT TOP (99.99) PERCENT 
            Population, City, State, SurveyDate, Region, Country, 
            CASE WHEN (DATEPART(yyyy, surveydate) = DATEPART(yyyy, GETDATE()))THEN 'CurrentYear' ELSE NULL END AS CurrentYear, 
            CASE WHEN (DATEPART(yyyy, surveydate) <> DATEPART(yyyy, GETDATE())) THEN 'LastYear' ELSE NULL END AS LastYear
    FROM DemographicDetails
    ORDER BY City)  
SELECT Population, City, State, Region, Country, SurveyDate, 
       CurrentYear, LastYear, COALESCE (CurrentYear, LastYear) AS DateStatus
FROM cte AS cte_1

レポートのテキストボックスには、次の式を指定しました。

iif(Fields!DateStatus.Value="CurrentYear",Fields!Population.Value,0) 

最初のテキスト ボックスと 2 番目のボックスの式は次のとおりです。

iif(Fields!DateStatus.Value="LastYear",Fields!Population.Value,0)

ただし、私の結果は次のようになります。

India       Current Yr Figure     PreviousYr Figure          
State_1     value1                0
State_1     0                     value2
State_2     value3                0 
State_3     value4                0

しかし、次のように必要です。

India               Current Yr Figure         PreviousYr Figure          
State_1             value1                    value2
State_2             value3                    0 
State_3             value4                    0

つまり、同じ行の state_1 value1 と value2 の場合です。

4

0 に答える 0