Подведение итогов по нескольким столбцам в sql или crystal

Мне было интересно, есть ли способ получить четкое количество в определенном столбце на основе значения второго столбца, при этом получая общее количество в первом столбце. Это пример проблемы, с которой я столкнулся. У меня есть запрос, который возвращает тип, идентификатор, статус i-Vent и связанные заказы на лекарства для системы вмешательства в аптеке. Вмешательства сгруппированы по типу i-Vent. Статус может быть одним из пяти значений или NULL. Мне нужно иметь возможность подсчитать, сколько i-Vents было записано как каждое из шести возможных значений для статуса.

Набор примеров может выглядеть примерно так:

________________________________________________________
Type    |  ID    |  Status  |  Linked Meds
________________________________________________________

IV2PO   | 1234   | Accepted | pantoprazole IV
IV2PO   | 1234   | Accepted | pantoprazole PO
IV2PO   | 1235   | NULL     | NULL
IV2PO   | 1236   | Pending  | metoclopramide IV
IV2PO   | 1236   | Pending  | metoclopramide PO
IV2PO   | 1236   | Pending  | Pharmacy Consult - IV2PO
Consult | 1237   | Rejected | NULL
________________________________________________________

В сводке по группе должны быть указаны IV2PO, общее количество которых равно 3, при этом 1 для «Принято», 1 для «NULL» и 1 для «Ожидание»; и Проконсультируйтесь, имея общий счет 1 с счетом 1 для «Отклонено».

Обратите внимание на повторяющиеся значения, вызванные тем, что i-Vent понравился более чем одному лекарству / заказу.

В конечном итоге я создаю окончательный отчет в Crystal Reports, поэтому, если есть способ получить там правильные подсчеты, это тоже будет хорошо. У меня есть версия, в которой используется подотчет для получения связанных лекарств / заказов, но я хотел бы найти лучшую альтернативу, чтобы на выполнение было меньше времени и меньше ресурсов.

Кто-нибудь знает, как это сделать?

Спасибо!


person Brian    schedule 17.07.2015    source источник
comment
Не уверен, что понимаю вопрос. Судя по таблице и желаемым результатам, похоже, что в запросе, который вы хотите, результат никогда не будет больше 1. тип | Отклонено | Принято | В ожидании | Нулевой ________________________________________________________ IV2PO | 0 | 1 | 1 | 1 Проконсультироваться | 1 | 0 | 0 | 0 Ты этого хочешь?   -  person ThatGuy    schedule 17.07.2015
comment
Ух ты! это форматирование не проявилось так, как я думал.   -  person ThatGuy    schedule 17.07.2015
comment
где вы хотите отображать счетчик?   -  person Siva    schedule 17.07.2015
comment
В этом отчете есть две группы; Тип и идентификатор. Мне нужна сводка в группе «Тип», в которой отображается общая сумма по типу вместе со значением для каждого возможного статуса. Правильная сводка для приведенного примера: IV2PO 3 total, Accepted 1, Pending 1, NULL 1, Rejected 0; Всего проконсультировано 1, Принято 0, Ожидает 0, NULL 0, Отклонено 1.   -  person Brian    schedule 18.07.2015


Ответы (1)


В Crystal Reports вы можете использовать опцию Счетчик отдельных сводок

При создании «Сводки» использование функции «Счетчик» может быть нежелательным. Часто отчет должен возвращать только количество уникальных записей контактов, поскольку другие таблицы (например, история) могут содержать несколько строк для каждого клиента. Выберите Вставить | Резюме. Выберите имя поля, которое вы хотите суммировать. Не забудьте выбрать Distinct Count в качестве итоговой операции.

person Traci    schedule 17.07.2015
comment
Я уже пробовал этот метод и получаю только ложные ответы. Я могу достаточно легко получить отчетливый счетчик количества значений типа, используя отдельный счетчик идентификатора, но он не суммирует должным образом значения статуса. Я попытался использовать текущую сводку с определенным количеством идентификаторов и формулу, которая ищет только одно значение статуса, но с помощью этого метода мне удалось получить счет только 0 (ноль) или 1. - person Brian; 18.07.2015
comment
В этом отчете у меня две группы. Первый - по типу, а второй - по идентификатору, чтобы значения каждого уникального i-Vent сохранялись вместе. Помните, мне нужно подсчитать каждое из возможных значений для статуса в сводке по первой группе, а также общее количество каждого типа по группе. У меня проблемы со сводкой статуса. Поскольку добавление связанных медицинских препаратов добавляет повторяющиеся значения для типа, идентификатора и статуса, простые подсчеты с использованием переменных не работают для суммирования значений статуса. - person Brian; 18.07.2015
comment
Я попытался использовать переменную для создания счетчика вместе с оценкой предыдущей записи (например: Если ID ‹› Previous (ID), то x: = x + 1), но получил сообщение об ошибке в Crystal о том, что я не могу использовать сводное значение в это уравнение. Также пробовал аналогичный метод с функцией WhilePrintingRecords с тем же результатом ошибки. В примере, который я привел правильное резюме в отчете, будет: IV2PO 3 total, Accepted 1, Pending 1, NULL 1, Rejected 0; Всего проконсультировано 1, Принято 0, Ожидает 0, NULL 0, Отклонено 1. Получение общего количества по типу уже правильно (точное количество по идентификатору), но статус неверен. - person Brian; 18.07.2015