2016-07-04 12 views
0

SSRSレポートでは、特定のオプションがアクセス時にテーブルから選択された回数をカウントしています。0値を表示するにはSSRSレポートを取得する方法

例えば、必ずしもすべてのオプションが選ばれているこれらの100のレコードで、のは次のように故障があるとしましょう

  • オプション32
  • オプション
  • 28 BオプションC 0
  • オプションd 0
  • オプションe 40
  • オプションfj 0

レポートを実行すると、オプションa、b、eの行しか表示されませんが、値が0のオプションでも10個のオプションをすべて表示するにはどうすればよいですか?

更新

これはこれは本当にあるクエリが

SELECT Agent, Team, First_Choice_Options, Start_Time FROM Record 
WHERE (Start_Time >= CONVERT(DATE, @Startdate)) 
    AND (Start_Time < CONVERT(DATE, DATEADD(DAY, 1, @Enddate))) 
    AND (Team = 'Triage') AND (Agent IN (@Agent)) 
+0

データセットの入力方法を表示する必要があります。 – BIDeveloper

+0

このクエリは SELECTエージェント、チーム、First_Choice_Options、録音 FROM(START_TIME> = CONVERT(DATE、@Startdate))START_TIME AND(START_TIME

+0

コメントを追加するのではなく、元の質問を更新する方がよいでしょう。 オプションd(たとえば)はデータベースに存在しますか?その場合は、SQLに照会している列に一致する行の値を表示してください。 – BIDeveloper

答えて

1

からデータを引き出し、コードSQLの事、レポートサービスに固有のものではあり。 SSRSは、データソースから返されるものだけを表示します。したがって、アクティビティを取得していないオプションを返すようにクエリを変更する必要があります。以下に例を示します。一番下にあるSELECT文はトリックがある場所です。 LEFT JOINがこれを行います。それ以外は、コードを動作させてテストすることができます。

CREATE TABLE Record (Agent varchar(30), 
    Team varchar(30), 
    First_Choice_Options varchar(30), 
    Start_Time datetime); 

INSERT INTO Record VALUES ('Some Agent','Triage','Option A','2016-06-05'), 
    ('Some Agent','Triage','Option A','2016-06-10'), 
    ('Some Agent','Triage','Option B','2016-06-15'), 
    ('Some Agent','Triage','Option B','2016-06-20'), 
    ('Some Agent','Triage','Option A','2016-06-25') 

CREATE TABLE Options (First_Choice_Options varchar(30)) 

INSERT INTO Options VALUES ('Option A'),('Option B'),('Option C'),('Option D') 

DECLARE @Startdate datetime = '2016-06-01', 
    @Enddate datetime = '2016-06-30', 
    @Agent varchar(30) = 'Some Agent' 

SELECT O.First_Choice_Options AS Options, SUM(IIF(R.First_Choice_Options IS NULL, 0, 1)) AS Options_Count 
FROM Options O LEFT JOIN Record R 
ON O.First_Choice_Options = R.First_Choice_Options 
AND (Start_Time >= CONVERT(DATE, @Startdate)) 
    AND (Start_Time < CONVERT(DATE, DATEADD(DAY, 1, @Enddate))) 
    AND (Team = 'Triage') AND (Agent IN (@Agent)) 
GROUP BY O.First_Choice_Options 

DROP TABLE Record 
DROP TABLE Options 

あなたはテスト用データベースに対してこれを実行する場合は、結果がどのように見えるかが表示されます。オプションAとBはカウントを持ち、オプションCとDはカウントを0(ゼロ)と報告します。このコードでは、データソースにtableのようなオプションがいくつかあると想定しています。

Options      Options_Count 
------------------------------ ------------- 
Option A      3 
Option B      2 
Option C      0 
Option D      0 

幸運!

+0

@ダンストレーシー、それはあなたのために働いてうれしい。答えを受け入れたとマークすることを検討してください。 http://stackoverflow.com/help/accepted-answer –

+0

私は今答えを受け入れました –

関連する問題