2013-03-29 2 views
1

Я разрабатываю отчет с использованием матричного управления SSRS.Как достичь этого в отчете о матрице в ssrs

Вот пример таблицы, с которой я работаю с

funmix

и вот что я пытаюсь достичь с помощью инструмента матрицы в SSRS

Results

О'КЕЙ описание сейчас

отчет должен отображать тип A, B, C и его группу сумм i t по коду местоположения. 6-я строка будет содержать вычисленное значение, полученное из строк 4 и 5 (тип A и тип B).

Как показано INT скриншоте формулу, используемую для получения результата ($ 44), используя формулу

(Case Value of Type B * average of Type B) + (Case Value of Type C * average of Type C) 
------------------------------------------------------------------------------------- 
          (Case Value of Type B + Case Value of Type C) 

поэтому значение $ 44 может быть достигнуто, как

(57 * 18) + (44 * 78)/(57 + 44) 

может кто-то просит меня, как я могу реализовать это в ssrs. Я создал структуру, но не смог вычислить общее значение.

ответ

1

Это зависит от того, как вы получаете свои средние значения. Это происходит за кулисами с чем-то, что вы предопределяете или делаете это на основе других таблиц, к которым вы можете присоединиться?

я бы это сделать, если это все в наборах данных вы можете получить:

  1. Определить набор данных, который является как ваши данные и ваши средние. Я не уверен, что вы исходите из SQL или просто делаете все это в Excel. Я болван в SQL до поры до времени:

    declare @Avgs Table (location int, type varchar(1), cs int, average int); 
    
    insert into @Avgs values (1, 'A', 21, 10),(1, 'B', 57, 18),(1, 'C', 44, 78); 
    
    Select top 10 * 
    from @Avgs 
    
  2. Вы, вероятно, хотите добавить «вычисляемый столбец» или сделать математику непосредственно в SQL, как редактор выражения в SSRS, как правило, хорошо для вещей, которые являются функцией или два, но когда у вас очень сложная математика, я считаю, что SQL-движок лучше справляется с этим. Это также помогает лучше изменить ситуацию.

  3. Поэтому я хотел бы изменить SQL, как, например:

    declare @Avgs Table (location int, type varchar(1), cs int, average int); 
    
    insert into @Avgs values (1, 'A', 21, 10),(1, 'B', 57, 18),(1, 'C', 44, 78); 
    
    With a as 
        (
        select *, cs * average as compound 
        from @Avgs 
        ) 
    , b as 
        (
        Select 
         (max(case when type = 'B' then compound end) + max(case when type = 'C' then compound end))/
         (max(case when type = 'B' then cs end) + max(case when type = 'C' then cs end)) as CompoundMath 
        from a 
        ) 
    select * 
    from a, b 
    
  4. Это будет ваш набор данных в SSRS, функция соединения может быть изменен как таковой внутри (случай, когда ... конец) после того, как «когда» - это логика, после того, как «то» это результат.

  5. Просто добавьте новую строку, и вы получите свое настраиваемое выражение как столбец под названием «Compound Math».