2017-02-14 4 views
0

My SQL хранимая процедура возвращает следующий результат:Удалить дубликаты результатов в пределах одной группы Crystal Reports

ID District Decision 
----------------------- 
17 First  Approved 
17 First  Partially approved 
17 First  Pending 
17 Second Approved 
17 Second Partially approved 
17 Second Pending 

Тот же был создан в моем Crystal Reports. В столбцах «Район» и «Решения» нет никаких отношений. Оба они связаны только с идентификатором (requestId). Я получаю дублированные результаты для каждого округа в результате объединения трех таблиц.

До сих пор мне удалось группировать записи по идентификатору и подавлять повторяющиеся строки. После этого я получил следующее в своем Отчете:

ID District Decision 
----------------------- 
17 First  Approved 
       Partially approved 
       Pending 
    Second Approved 
       Partially approved 
       Pending 

До сих пор так хорошо, но то, что я в конце концов хочу, чтобы получить что-то вроде следующим образом:

ID District Decision 
---------------------- 
17 First  Approved 
    Second Partially approved 
       Pending 

Я хочу, чтобы все пробелы в (который оставлен после подавления дублирования) и оставить только отдельные записи в группе идентификаторов.

Я хочу сделать все, что в Crystal Reports, поэтому я уверен, за исключением работы вокруг в SQL сервере

+0

F.Y.I. вы можете написать свои собственные SQL-команды * в * Crystal Reports. Просто зайдите в Database Expert, выберите ваше соединение и выберите команду «Добавить команду». – 4444

ответ

0

Если редактирование SQL это не вариант, вы на правильном пути. Короче говоря, вы захотите:

  1. Напишите формулу (@YourFormula), которая оценивает значение «Истина», если предыдущая запись имеет одинаковый идентификатор и округ. (Подсказка: используйте функцию PREVIOUS().)
  2. Отформатируйте каждое поле в разделе «Сведения» так, чтобы формула «Подавление» была установлена ​​на @YourFormula.
  3. В редакторе разделов для подробной информации отметьте «Подавить пустое разделение».

Все это зависит от того, сгруппированы ли ваши записи правильно. Если они иногда появляются не в порядке, вам, возможно, потребуется изменить текущий текущий SQL.

+0

Спасибо @ 4444 за ваш ответ. Что-то неправильно. Я выполнил шаги, которые вы объяснили, но я получаю тот же результат. Используемая формула: {usp_storedProcedure; 1.ID} = previous ({usp_storedProcedure; 1.ID}) И {usp_storedProcedure; 1.District} = previous ({usp_storedProcedure; 1.District}) –

+0

Трудно диагностируйте это, не видя/не понимая свой отчет. Вы против написания пользовательской команды SQL в Crystal? Это даст вам гораздо больше контроля над тем, что тянет в отчет. – 4444

+0

Извините @ 4444 за поздний ответ. Я временно решил проблему с использованием курсора в хранимой процедуре, но был бы рад, если бы вы дали мне ясный пример того, как использовать пользовательскую команду SQL в Crystal! –

Смежные вопросы