728x90

사용 프로그램

Oracle 11g & SQL Developer

 

메세지

ORA-00979: GROUP BY 표현식이 아닙니다. 00979. 00000 - "not a GROUP BY expression"

 

상황

아래 쿼리를 조회하려다 발생

SELECT E.EMP_NO, E.EMP_NM, COUNT(E.EMP_NO)
FROM EMP_C E
    JOIN FAM_C F ON(E.EMP_NO = F.EMP_NO)    
WHERE REL_TYPE_CD = 'A27'
GROUP BY E.EMP_NO; -- 인출행 수 1239

 

원인

조회할려는 컬럼이 그룹바이로 지정이 안됐기에 에러 발생

GROUP BY문에 들어가 있는 컬럼명들 중에 SELECT문에 안들어가도 있어도 에러발생X

반대로, GROUP BY문에 없는데 SELECT문에서 들어가있는 컬럼명이 있다면 에러발생O

 

해결

GROUP BY E.EMP_NO에 추가로 E.EMP_NM 컬럼 추가

E.EMP_NM이 조회할려던 컬럼

즉, 조회할려는 컬럼이 그룹바이로 지정이 안됐기에 에러 발생

SELECT E.EMP_NO, E.EMP_NM, COUNT(E.EMP_NO)
FROM EMP_C E
    JOIN FAM_C F ON(E.EMP_NO = F.EMP_NO)    
WHERE REL_TYPE_CD = 'A27'
GROUP BY E.EMP_NO, E.EMP_NM; -- 인출행 수 1239

 

728x90
반응형
728x90

 

EL

JSP 2.0버전에서 추가된 표현언어로, Expression Language의 약자

화면에 데이터 출력 시키는 것이 메인 기능

 

화면에 표현하고자 하는 부분을  ${ value }과 같은 형식으로 코드로 구현

(jQuery의 $표시와 혼동 주의)

JSP의 <%= 출력할 데이터 %>나 System.out.print(출력할 데이터)와 비슷

<%= request.getParameter(“name”) %> ${ param.name }

 

 

EL 연산자 기호

EL 연산자가 적용되는 우선순위

 

 

EL 기본 내장 객체

 

 

예시

데이터 가져올 뷰화면 코드

<form action=”loginEx.jsp” method=”get” >
	<label for=”id”>아이디 : </label> 
    <input type=”text” name=”id” id=”id” <label for=”pass”> 
    <input type=”text” name=”id” id=”id”/><br>
    
    <label for=”pass”> 암호 : </label> 
    <input type=”password” name=”pass” id=”pass” /><br> 
    <input type=”submit” value=”로그인” />
</form>

 

데이터 받을 jsp 페이지

<h1>표현식 버전</h1>
아이디 : <%=request.getParameter(“id”) %>
암호 :  <%=request.getParameter(“pass”) %>

<h1>EL 버전</h1>
아이디 : ${param.id }
암호 : ${param.pass }

 

728x90
반응형

+ Recent posts