2015-01-12 5 views
1

SQL 쿼리를 식으로 받아들이는 List 상자를 만들고 싶습니다. QlikView에서 가능합니까?QlikView : 목록 상자의 식에서 SQL 쿼리를 사용할 수 있습니까?

예를 들어 한 Manager에보고하는 모든 직원의 평균 (샐)을 표시하고 싶습니다. 기본적으로 목록 상자에는 관리자 이름이 있어야하며 관리자를 선택하면 평균 sal 값을 볼 수 있습니다. 제발 제안 해주세요.

답변

2

테이블에 자체 참조 열이 있으면 언제나 위험 할 수 있습니다. Qlikview에서이 작업을 수행하려면, 가장 좋은 방법은 Qlikview 스크립트에서 관리자 테이블을 만드는 것입니다 :

employees: 
LOAD * INLINE [ 
    empnum, empname, man_empnum, salary 
    1, Bill, 2, 50000 
    2, John, 3, 75000 
    3, Mary, , 115000 
    4, Mike, 2, 45000 
    5, Amy, 2, 58000 
]; 

managers: 
load distinct(man_empnum) 
resident employees; 

inner join(managers) 
load empnum as man_empnum, 
    empname as manname 
resident employees; 

이것은 man_empnum 필드에 포함 만 관리자 직원 번호 별개의 목록을 잡고 다음 해당 직원의 이름을 조인 각 레코드에. 관리자로 참조 된 직원 만 관리자 테이블에 표시됩니다.

일단이 작업을 완료하면 목록 상자를 만들어야합니다. "필드 선택"대화 상자에서 manname 필드를 잡고 표현식 탭에 min({1}man_empnum)을 추가하십시오. 이전 답변에서 언급했듯이이 절차로 목록 상자에 표현식을 추가 할 수 있습니다. 이 경우 min()을 사용하면 관리자의 직원 번호가 항상 목록 상자에 표시되도록하는 것입니다. 표현식으로 man_empnum을 단순히 사용하면 목록 상자에 선택한 관리자의 직원 번호 만 표시됩니다. 중요한 부분은 집합 선택기 {1}에 액세스 할 수 있으므로 min 대신 원하는 집계 함수를 사용할 수 있습니다. 직원 한 명당 직원 수만 있으면이 방법이 효과적입니다.

+0

전체 세부 정보를 추가하지 않아서 죄송합니다. EMPNO, EMPNAME, MANAGER, SALARY와 같은 EMPLOYEE 세부 사항이있는 테이블이 있다고 가정 해 보겠습니다. 그러나 MANAGER는 이름이 아니지만 EMPNO는 해당 테이블의 EMPLOYEE입니다. 기본적으로 Manager와 Empno 사이에 계층 구조가 있습니다. 이 시나리오에서 다음을 수행합니다. 1. MANAGER NAMES (EMPNAME) 및 EMPNO (즉, 각 MANAGER의 EMPNO) 목록을 가져 오는 SQL 쿼리를 작성하려고했습니다. 2.LIST BOX에 대한 입력으로 그 쿼리를 사용하십시오. 달성 가능합니까? – Vam

+0

다른 모든 메모는 모든 직원이 직원 테이블에 입력되었다고 가정 할 때 계층 구조가있는 한 맨 위에 관리자가없는 직원이 적어도 한 명 이상 있습니다. 필자의 예에서 Mary는 맨 위에 있으므로 관리자에 대한 언급이 없습니다. – bdiamante

+0

고마워요! bdiamante – Vam