소스에서 위와 같은 쿼리를 발견하였습니다.
decode가 쓰였는데요 어떻게 하라는 건지 모르겠습니다.
특히 decode(LVL,1,count(*),0) lvl_critical)과 같은 것은 어떻게 해섯을 해야 할지 모르겠습니다.
SQL.Add('SELECT METHOD_GROUP, ');
SQL.Add(' SUM(LVL_CRITICAL) LVL_CRITICAL, SUM(LVL_MAJOR) LVL_MAJOR, SUM(LVL_MINOR) LVL_MINOR,');
SQL.Add(' SUM(LVL_INFORM) LVL_INFORM, SUM(LVL_TOTAL) LVL_TOTAL' );
SQL.Add(' FROM (SELECT ' + sGroup_Str + ' METHOD_GROUP, ');
SQL.Add(' DECODE(LVL, 1, COUNT(*), 0) LVL_CRITICAL, ');
SQL.Add(' DECODE(LVL, 2, COUNT(*), 0) LVL_MAJOR, ');
SQL.Add(' DECODE(LVL, 3, COUNT(*), 0) LVL_MINOR, ');
SQL.Add(' DECODE(LVL, 4, COUNT(*), 0) LVL_INFORM, ');
SQL.Add(' COUNT(*) LVL_TOTAL ');
SQL.Add(' FROM ALARMLOG ');
SQL.Add(' WHERE SYSID = :p_SYSID');
SQL.Add(' AND EVENT = 1 '); //--발생(1)인것만 대상<복구(0)은 제외>
SQL.Add(' AND ADATE BETWEEN :p_DATE_FROM AND :p_DATE_TO ');
SQL.Add(' GROUP BY ' + sGroup_Str + ', LVL ) ');
SQL.Add(' GROUP BY METHOD_GROUP ');
SQL.Add(' ORDER BY METHOD_GROUP ');
====> IF A = B THEN C
ELSE D
END-IF.
이정도면 아시겠지요?
즉 아래문장은
decode(LVL,1,count(*),0) lvl_critical
LVL 이 1 이면 RECORD COUNT 를 하고 1이 아니면 그냥 0 으로 처리.
hee wrote:
> 소스에서 위와 같은 쿼리를 발견하였습니다.
> decode가 쓰였는데요 어떻게 하라는 건지 모르겠습니다.
> 특히 decode(LVL,1,count(*),0) lvl_critical)과 같은 것은 어떻게 해섯을 해야 할지 모르겠습니다.
>
> SQL.Add('SELECT METHOD_GROUP, ');
> SQL.Add(' SUM(LVL_CRITICAL) LVL_CRITICAL, SUM(LVL_MAJOR) LVL_MAJOR, SUM(LVL_MINOR) LVL_MINOR,');
> SQL.Add(' SUM(LVL_INFORM) LVL_INFORM, SUM(LVL_TOTAL) LVL_TOTAL' );
> SQL.Add(' FROM (SELECT ' + sGroup_Str + ' METHOD_GROUP, ');
> SQL.Add(' DECODE(LVL, 1, COUNT(*), 0) LVL_CRITICAL, ');
> SQL.Add(' DECODE(LVL, 2, COUNT(*), 0) LVL_MAJOR, ');
> SQL.Add(' DECODE(LVL, 3, COUNT(*), 0) LVL_MINOR, ');
> SQL.Add(' DECODE(LVL, 4, COUNT(*), 0) LVL_INFORM, ');
> SQL.Add(' COUNT(*) LVL_TOTAL ');
> SQL.Add(' FROM ALARMLOG ');
> SQL.Add(' WHERE SYSID = :p_SYSID');
> SQL.Add(' AND EVENT = 1 '); //--발생(1)인것만 대상<복구(0)은 제외>
> SQL.Add(' AND ADATE BETWEEN :p_DATE_FROM AND :p_DATE_TO ');
> SQL.Add(' GROUP BY ' + sGroup_Str + ', LVL ) ');
> SQL.Add(' GROUP BY METHOD_GROUP ');
> SQL.Add(' ORDER BY METHOD_GROUP ');
>