Cognos 보고서에서 SQL을 직접 작성할 때 사용할 프롬프트 관리자를 선택하는 방법
2966 단어 promptmanyCognos일prompt보고서
이 promptmany를 사용하면, 기본적으로 필터가 필수가 되어 버리므로, 옵션으로 하는 방법을 공유합니다.
무슨 말을 하는지, 아래의 내용을 보고 받는 것이 빠르다고 생각하므로 읽어 주세요.
내용
다음과 같은 보고서를 작성하고 있습니다. 값 프롬프트는 데이터로 SALES_PERSON을 지정합니다.
매개 변수 이름으로 pSP라는 이름을 지정합니다.

목록의 데이터는 다음과 같이 SQL을 직접 작성하여 검색합니다.
이때 아래와 같이 promptmany로 필터를 걸고 있습니다.

보고서를 실행하면 다음과 같이 '데이터 없음'이 됩니다.
이것은 promptmany가 필수가 되어 버리고 있기 때문입니다.

프롬프트를 선택하면 표시할 수 있습니다.

필터를 옵션으로 설정하려면 다음과 같이 promprmany를 나열합니다.
select * from XXXXX.SALES where SALES_PERSON in #promptmany('pSP','',"'NoSelect'")# or 'NoSelect' = #promptmany('pSP','',"'NoSelect'")#

이렇게하면 선택적 필터로 인해 모든 데이터가 초기화됩니다.

매우 Specific한 내용입니다만, 실제의 프로젝트에서 곤란해 조사해 드디어 발견된 방법이므로, 어딘가에서 도움이 될지도 생각해 투고했습니다.
다중 선택의 경우 (2021/12/1 추가)
죄송합니다. 앞서 언급 한 방법이라면 여러 선택의 경우 오류가 발생했습니다.
복수 선택의 경우, 올바른 쓰는 방법은 이하군요.
()가 필요하고 = 대신 in입니다.
select * from XXXXX.SALES where SALES_PERSON in ( #promptmany('pSP','',"'NoSelect'")# ) or 'NoSelect' in ( #promptmany('pSP','',"'NoSelect'")# )
Like에서 복수 검색을 전후방 일치하고 싶은 경우(2021/12/6추기)
해보면 할 수 있었다는 수준에서 죄송합니다만, 일단 둡니다.
split의 구분 기호는 ','(쉼표 + 공백)이지만 DB2에서 테스트했기 때문일 수 있습니다. 사용하는 RDBMS측에서 SQL 캐치 해 단락 문자를 무엇으로 해야 하는지는 확인하는 것이 좋다.
select * from XXXXX.SALES where SALES_PERSON like #join('%'' or SALES_PERSON like ''%',split(', ',sq(promptmany('pSP','token',"'NoSelect'",'%','','%'))))# or 'NoSelect' in ( #promptmany('pSP','',"'NoSelect'")# )
Reference
이 문제에 관하여(Cognos 보고서에서 SQL을 직접 작성할 때 사용할 프롬프트 관리자를 선택하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/shinyama/items/8f1ea0877033cdb44396
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
select * from XXXXX.SALES where SALES_PERSON in ( #promptmany('pSP','',"'NoSelect'")# ) or 'NoSelect' in ( #promptmany('pSP','',"'NoSelect'")# )
해보면 할 수 있었다는 수준에서 죄송합니다만, 일단 둡니다.
split의 구분 기호는 ','(쉼표 + 공백)이지만 DB2에서 테스트했기 때문일 수 있습니다. 사용하는 RDBMS측에서 SQL 캐치 해 단락 문자를 무엇으로 해야 하는지는 확인하는 것이 좋다.
select * from XXXXX.SALES where SALES_PERSON like #join('%'' or SALES_PERSON like ''%',split(', ',sq(promptmany('pSP','token',"'NoSelect'",'%','','%'))))# or 'NoSelect' in ( #promptmany('pSP','',"'NoSelect'")# )
Reference
이 문제에 관하여(Cognos 보고서에서 SQL을 직접 작성할 때 사용할 프롬프트 관리자를 선택하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/shinyama/items/8f1ea0877033cdb44396텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)