Я делаю отчет в Cognos Report Studio, и у меня возникли проблемы с получением счета, который мне нужен. Мне нужно подсчитать количество идентификаторов для отдела. Но мне нужно разделить счет между начатыми и завершенными. Если идентификатор встречается более одного раза, его следует считать завершенным. Остальные, конечно же, будут начаты. Поэтому я пытаюсь подсчитать количество входов идентификатора для отдельного идентификатора. Вот запрос, который я сделал в SQl Developer:Cognos: подсчитайте количество вхождений отдельного идентификатора
SELECT
COUNT((CASE WHEN COUNT(S.RFP_ID) > 8 THEN MAX(CT.GCT_STATUS_HISTORY_CLOSE_DT) END)) AS "Sales Admin Completed"
,COUNT((CASE WHEN COUNT(S.RFP_ID) = 8 THEN MIN(CT.GCT_STATUS_HISTORY_OPEN_DT) END)) as "Sales Admin Initiated"
FROM
ADM.B_RFP_WC_COVERAGE_DIM S
JOIN ADM.B_GROUP_CHANGE_REQUEST_DIM CR
ON S. RFP_ID = CR.GCR_RFP_ID
JOIN ADM.GROUP_CHANGE_TASK_FACT CT
ON CR.GROUP_CHANGE_REQUEST_KEY = CT.GROUP_CHANGE_REQUEST_KEY
JOIN ADM.B_DEPARTMENT_DIM D
ON D.DEPARTMENT_KEY = CT.DEPARTMENT_RESP_KEY
WHERE CR.GCR_CHANGE_TYPE_ID = '20'
AND S.RFP_LOB_IND = 'WC'
AND S.RFP_AUDIT_IND = 'N'
AND CR.GCR_RECEIVED_DT BETWEEN '01-JAN-13' AND '31-DEC-13'
AND D.DEPARTMENT_DESC = 'Sales'
AND CT.GCT_STATUS_IND = 'C'
GROUP BY S.RFP_ID ;
Теперь это работает. Но я не уверен, как перевести taht в Cognos. Я пытался делать СЛУЧАЙ TAHT смотрел Лик это (этот код использует основные имена, такие как отдел вместо D.DEPARTMENT_DESC):
CASE WHEN dept = 'Sales' AND count(ID for {DISTINCT ID}) > 1 THEN count(distinct ID)END)
Я использую счета (отчетливые ID) вместо подсчета (максимум (close_date)). Но результаты все равно будут одинаковыми. «И» - это то место, где я думаю, что его потеряли. Очевидно, что это не правильный способ подсчета случаев. Но я надеюсь, что я рядом. Есть ли способ сделать это с помощью CASE? Или вообще?
--EDIT-- Чтобы сделать мой вопрос более ясно, вот пример:
Скажем, у меня есть эти данные в моей таблице
ID
---
1
2
3
4
2
5
5
6
2
Мой желаемый результат подсчета будет:
Initiated Completed
--------- ---------
4 2
Это связано с тем, что два разных идентификатора (2 и 5) встречаются более одного раза. Поэтому они считаются завершенными. Те, которые происходят только один раз, считаются Инициированными. Я могу сделать это в SQl Dev, но я не могу понять, как это сделать в Cognos Report Studio. Надеюсь, это поможет лучше объяснить мою проблему.
«Но я не знаю, как перевести ТАГТ в Cognos». Что именно вы подразумеваете под этим? –
Я не знаю, как использовать cognos для выполнения той же задачи, что и в SQL Dev. – woods
В Studio отчета зайдите в область запроса в студию отчетов, удалите элемент SQL и поместите туда запрос. ИЛИ правильно смоделируйте его в Framework Manager, чтобы вы могли просто перетаскивать объекты запроса, и он будет создавать SQL для вас. –