2016-07-05 4 views
1

Я использую Microsoft SQL Server 2008 R2 Report Builder 3.0. Я потратил 8 часов на это до сих пор и все еще почти на квадрате 1. Моя цель - иметь график, который показывает среднюю «референтную задержку» (в днях) за каждый период времени. Моя проблема заключается в том, что когда у меня есть файл, который был передан для двух разных сервисов, мой график по-прежнему компилирует среднее значение, не различая эти случаи.Фильтровать двойные значения Report Builder 3.0 ssrs

Например: Пациент А получает ссылку на услугу 1, для которой задержка составляла 10 дней, и для обслуживания 2, для которой задержка составляла 4 дня.

Сейчас: график делает (Задержка Н + 10 + 4)/п

мне нужно: (Задержка N + 4)/л, то есть длинная задержка 2 задержки игнорируется.

Я пробовал использовать фильтры в наборе данных, меняя выражение в самой группе серий и т. Д. До сих пор не удалось. Самое большее, что я смог сделать, - это заставить график игнорировать все случаи, у которых есть 2 задержки, что определенно не очень хорошо.

Плюс, я думал об использовании функции Min следующим образом, но это дает мне тот же результат, что и у меня (все задержки учитываются). Итак, снова ничего хорошего.

=Avg(IIF(CountDistinct(Fields!No_dossier_local.Value)>Count(Fields!No_dossier_local.Value), Min(Fields!Delay.Value), Fields!Delay.Value)) 

Помогите, Спасибо!

ответ

0

Попробуйте использовать следующее, сначала проверьте, соответствует ли количество задержек равным единице, затем введите это значение, иначе введите значение минимальной задержки.

= ср (IIF (Count (Fields! Delay.Value) = 1, Поля! Delay.Value, Min (Fields! Delay.Value)))

+0

Привет Питер! Спасибо за подсказку, я просто попробовал, но, к сожалению, все, что он делает, это выбрать минимальное значение за весь период времени, т. Е. У меня есть график, где x - время (годы и периоды), а где y - задержка в днях. Поэтому, когда я пытаюсь выполнить ваш код или когда я заменю [Fields! Delay.Value], скажем [Fields! No_dossier_local.Value], он вызывает самую короткую задержку пациента за этот период, независимо от того, что другой пациент задерживается на этом таймфрейме. Но, спасибо большое за вашу помощь, я буду продолжать рыть в этом направлении. –

+0

Просто добавьте некоторые детали (в случае, если это окажется полезным). Исходный набор данных имеет следующие размеры: год, период (13 периодов в году), расположение клиники (2 места), количество пациентов и тип обслуживания (физиология, эрго и т. Д.). Мой желаемый показатель конечного результата - это задержка. У меня есть мера, которую я могу включить, а также вызванное количество ссылок. Скажем, если я удалю измерение [Тип службы] в моем наборе данных, мой номер ссылки для данного пациента может быть выше 1. Однако, если я оставлю [Тип службы] в моем наборе данных, число, которое будет остаются 1. –

+0

На самом деле, есть ли способ использовать Cstr или что-то, чтобы понять, что если номер пациента идентичен, принимайте минимальный? Итак, вроде как ваше предложение, но вместо Count()? Я просто попробовал = avg (IIF (Fields! No_dossier_local.Value = Fields! No_dossier_local.Value, Fields! Delay.Value, Min (Fields! Delay.Value))), но он дает мне тот же результат, что и для вашего выражения. ?? <(-.- "<) –