union을 써야할 듯 한데...에러가 자꾸 나네요..ㅠㅠ 0 2 1,593

by 승환부인 [SQL Query] [2009.12.01 23:32:58]


원하는 값은 지금 짠 쿼리에서 하나의 조건을 더 추가하는데서 납니다.
slYn이라는 조건이 추가되는데요...이게 기존의 테이블에서 이번에 새로 추가하는거라...
그냥 select할 때 slYn=’Y’라는 조건을 추가하면 되는데...단,
regYmd 가 ’20091130’이전의 것은 그대로 가져오고 이후의 것만 slYn=’Y’인걸 붙여줘야합니다...
그래서 제 생각엔 union 을 쓰면 될듯한데..계속 에러가 나서요.ㅠㅠ

우선 기존의 쿼리는...//------------------------------------------------------------------------------------------

SELECT  SUBSTR(regYmd, 1, 6) AS regYmd,
                  teamDivCd,
                  COUNT(1) AS cnt,
                  (SELECT minLevel FROM table1
                   WHERE  measDivCd=’SL’
                   AND         mealndDivCd=’43’
                   AND         teamDivCd = ’1’
                   AND         strtYmd = (SELECT MAX(strtYmd) FROM table1
                                                        WHERE  measDivCd=’SL’
                                                         AND        mealndDivCd=’43’
                                                         AND        teamDivCd=’1’
                                                         AND        SUVSTR(strtYmd, 1, 6) <= regYmd )
                   ) minLevel,
                   (SELECT wishLevel FROM table1
                   WHERE   measDivCd=’SL’
                   AND          mealndDivCd=’43’
                   AND          teamDivCd=’1’
                   AND          strtYmd = (SELECT MAX(strtYmd) FROM table1
                                                         WHERE  measDivCd=’SL’
                                                          AND        mealndDivCd=’43’
                                                          AND        teamDivCd=’1’
                                                          AND        SUBSTR(strtYmd, 1, 6) <= regYmd)
                   ) wishLevel,
                   ’’ estimate -- 평가
FROM    mainTable1
WHERE subType=’SYS’
AND       teamDivCd NOT IN (’3’, ’4’)
AND       regYmd BETWEEN ’20090101’ AND ’20091231’
AND       levelCd = ’3’
AND       teamDivCd = ’1’
GROUP BY SUBSTR(regYmd, 1, 6),
                      teamDivCd
여기까지입니다....//------------------------------------------------------------------------------------------
제가 추가하려는 slYn은 mainTable1에 있는 변수입니다. 이걸 조건에 추가하려는데

slYn = ’Y’ 인데 단, regYmd<=’20091130’은 조건에 상관없이 그냥 값을 가져오려면 쿼리를 어떻게 짜야하나요??

고수님들 한수 가르쳐 주십시오.ㅠㅠ

 

by 마농 [2009.12.02 08:08:14]
AND (slYn = 'Y' OR regYmd<= '20091130')

by 승환부인 [2009.12.02 08:55:36]
어익후~ 이렇게나 간단..ㅎㅎ 아직 경험이 많이 부족해서 마농님의 도움을 가끔 받네요.ㅎㅎ
날씨 추운데 다들 옷 따숩게 입으시고^^ 마농님 답변 늘 감사드리고...그렇습니다.^^ㅎㅎ

감솨감솨~~^^
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입