union all 0 3 1,236

by 현씨 [2012.12.11 09:47:10]





 SELECT agent_pri "값1"
       FROM SD_PART_MAST
   WHERE part_no = RPAD('TTTT',12,' ')
   UNION ALL
    SELECT  repair_store_pri "값2"
       FROM SD_PART_MAST
   WHERE part_no = RPAD('HHH',12,' ')
   UNION ALL
    SELECT real_buyer_pri "값3"
       FROM SD_PART_MAST
   WHERE part_no = RPAD('TMM1',12,' ')

일단 이쿼리는 "값1""값2" 는 반환되지 않습니다.ㅎ

비슷한 글이 있나 찾아보려 고 했는데 쉽지가 않네여 ㅜㅜ 부탁드려요~
by 손님 [2012.12.11 10:22:47]

 SELECT  '대리점가' a
FROM dual
   UNION ALL
   SELECT agent_pri*1.1 a
       FROM SD_PART_MAST
   WHERE part_no = RPAD('TH56380000S1',12,' ')
   UNION ALL
    SELECT  repair_store_pri*1.1 a
       FROM SD_PART_MAST
   WHERE part_no = RPAD('TH56380000S1',12,' ')
   UNION ALL
    SELECT real_buyer_pri a
       FROM SD_PART_MAST
   WHERE part_no = RPAD('TH56380000S1',12,' ')

중간중간 빨갛게 쓴 저 이름을 추가 하려고 했는데
금액이랑 형이 달라서 오류가 나네여~

by 마농 [2012.12.11 11:16:53]
-- 저라면 컬럼 두개(항목구분, 항목값)로 조회하겠습니다.
SELECT DECODE(lv, 1, '대리점가', 2, '수리점가', 3, '실수요자가') gb
     , DECODE(lv, 1, agent_pri, 2, repair_store_pri, 3, real_buyer_pri) v
  FROM sd_part_mast
     , (SELECT LEVEL lv FROM dual CONNECT BY LEVEL <= 3)
 WHERE part_no = RPAD('TH56380000S1',12,' ')
 ORDER BY lv
;
-- 컬럼 하나로 하시려면
SELECT DECODE(lv, 1, '대리점가'
                , 2, TO_CHAR(agent_pri*1.1)
                , 3, '수리점가'
                , 4, TO_CHAR(repair_store_pri*1.1)
                , 5, '실수요자가'
                , 6, TO_CHAR(real_buyer_pri)
                ) v
  FROM sd_part_mast
     , (SELECT LEVEL lv FROM dual CONNECT BY LEVEL <= 6)
 WHERE part_no = RPAD('TH56380000S1',12,' ')
 ORDER BY lv
;

by 현씨 [2012.12.11 11:32:33]

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