Q&A

  • 쿼리 질문이여..
DB : MSSQL

다음과 같은 데이타가 있습니다..

매출데이타
일자            금액
20090301    5000
20090501    1000
20090502    1000
20090601    2000
20090602    2000

수금데이타
일자            금액
20090401  1000
20090501    500
20090502    500
20090601    1000
20090602    1000

위 데이타를 쿼리를 해서 다음과 같이 보여줄 수 잇나여 ?

  년월      매출액  수금액
200903    5000          0
200904          0    1000
200905    2000    1000
200906    4000    2000

위 결과처럼 보이고 싶은데.. 고수님들 답변 점..
2  COMMENTS
  • Profile
    도의 2009.06.19 18:51
    실력이 무지라서..

    select to_char(sdate,'yyyymm') sdate, sum(nvl(amt1,0)), sum(nvl(amt2,0)) from (
    select to_date(sdate,'yyyymmdd') sdate, amt amt1, null amt2 from (
    select '20090301' sdate, 5000 amt from dual
    union all
    select '20090501' sdate, 1000 amt from dual
    union all
    select '20090502' sdate, 1000 amt from dual
    union all
    select '20090601' sdate, 2000 amt from dual
    union all
    select '20090602' sdate, 2000 amt from dual)
    union all
    select to_date(sdate,'yyyymmdd') sdate, null amt1, amt amt2 from (
    select '20090401' sdate, 1000 amt from dual
    union all
    select '20090501' sdate, 500 amt from dual
    union all
    select '20090502' sdate, 500 amt from dual
    union all
    select '20090601' sdate, 1000 amt from dual
    union all
    select '20090602' sdate, 1000 amt from dual))
    group by to_char(sdate,'yyyymm')

    이렇게 해봤네요... ORACLE에서 만들어봤습니다. MSSQL에 맞게 바꿔보시길;
  • Profile
    도의 2009.06.19 18:54
    아웃터 조인하려햇으나 양쪽다 성립시키기 애매해서 union all로 묶었습니다..


    쿼리중간 daul테이블은 데이터 테이블이 없어서 임시 데이터 만들기위해 쓴거니...