2017-05-01 3 views
0

データがない場合でも1年全体の月の見出しをどのように見えるかを知る必要があります。 SSRSの月ヘッダをどのように表示するのですか

|Name |Jan |Feb |Mar |Apr |May |Jun |Jul |Aug |Sep |Oct |Nov |Dec | 
|Bike |  |  |  |  |  |  |102 |500 |450 |250 |754 |125 | 
|Glove |154 |625 |245 |200 |147 |365 |248 |784 |987 |145 |204 |321 | 

しかし、私は(バイク)のような項目を1つだけ選択すると、結果は以下の通りである:私は、全体の年間のすべての項目を選択すると例えば、私はこのテーブルを持っている

|Name |Jul |Aug |Sep |Oct |Nov |Dec 
|Bike |102 |500 |450 |250 |754 |125 

私がする必要があります月データが空でも表全体を参照してください

|Name |Jan |Feb |Mar |Apr |May |Jun |Jul |Aug |Sep |Oct |Nov |Dec | 
|Bike |  |  |  |  |  |  |102 |500 |450 |250 |754 |125 

ありがとうございました。

答えて

2

データセットクエリでは、すべての月名を含むセットを作成する必要があります。その後、既存のデータセットに設定したままにします。

Select [columns] 
From MonthNames as MN 
left join Sales as S 
on MN.MonthName = S.MonthName 

データを持たない月にはまだレコードがありますが、値はNULLになります。セールスセットではなく、MonthNameセットの月名フィールドを使用していることを確認してください。その月の売上がなくても、毎月少なくとも1つのレコードを確実に取得できます。


すべての列がどこから来たのかわからないので、私はいくつか前提をしなければなりませんでした。将来、すべての列の前に表の別名を使用すると便利です。

このお試しください:簡易版

SELECT Name, 
     UnitPrice, 
     Q1.MONTH, 
     Q1.MONTH2 
FROM TEST.dbo.MonthList AS Q1 
    LEFT JOIN 
     (SELECT *, 
        YEAR(ModifiedDate) AS YEAR 
      FROM AdventureWorks2012.Sales.SalesOrderDetail AS Q2 
      INNER JOIN AdventureWorks2012.Production.Product AS Q3 
       ON Q2.ProductID = Q3.ProductID 
      WHERE YEAR(ModifiedDate) = @YEAR 
       AND Name IN (@NAME) 
     ) AS Q 
    ON Q1.MONTH2 = MONTH(Q.ModifiedDate) 
WHERE Q1.MONTH IN (@MONTH); 

を私はあなたのrecomendationが、それでも同じ結果をやって表に従っています

Select [columns] 
From MonthNames as MN 
left join (select [columns] from Products Inner join Sales ON ... WHERE [Product & Sales filters]) as S 
on MN.MonthName = S.MonthName 
+0

です。 。。。SELECT( は、[名前] 、[単価] 、Q1 [MONTH] 、Q1.MONTH2 [TEST] FROM [DBO] [monthlistに] Q1 LEFT を参加]を選択:これは私がやっているものですQ1 ON *、YEAR([ModifiedDate])[年] AS FROM [AdventureWorks2012]。[販売]。[SalesOrderDetail] YEAR([ModifiedDate])= @YEAR)Q2 [MONTH2] = MONTH(Q2 [ModifiedDate]) INNER(@MONTH) AND YEAR(Q2 [ModifiedDate IN [AdventureWorks2012]。[製造]。[製品] Q2.ProductID = Q3.ProductID Q1 ON Q3。[月] JOIN ])= @YEAR AND [名前] IN(@NAME) – Mario

+0

あなたの内部結合は、製品がなく月(Q2.ModifiedDate)= @年であるすべての月を削除して、Q1ごとにQ2行を必要とします。名前がQ1からのものでない場合、それは製品なしの月をもなくすでしょう –

+0

ありがとうございます!!!!今すぐレポートが必要なテーブル全体を表示します。あなたは最高です!! – Mario

関連する問題