none
날짜별 group by 시 빈 날짜 0으로 채우기 RRS feed

  • 질문

  • Data

    date | num

    2013-10-01 1

    2013-10-01 1

    2013-10-03 1

    2013-10-05 1

    select 결과

    2013-10-01 2

    2013-10-02 0

    2013-10-03 1

    2013-10-05 1

    sum과 group by를 이용하면 "2013-10-02 0"이 출려되지 않습니다.

    제가 원하는 결과는 group by시 결과 값이 없는 날에는 0으로 출력하고 싶은대요...


    장정훈

    2013년 12월 18일 수요일 오후 1:10

모든 응답

  • 데이타에 존재하지 않는 값이기때문에 0  으로 출력 할수 있는 방법은 없을 것 같습니다.

    단, 날짜 테이블을 만드셔서 Left Join하면 원하시는 값을 도출해낼수 있을것 같습니다.

    제시해 드린 답변이 도움이 되었기를 바랍니다.
     
    답변이 문제 해결에 도움이 되었다면 답변으로 채택을 부탁드립니다.
    하지만 문제 해결이 되지 않아서 정확한 답변을 원하는 경우에는 문제의 정보를 더 자세하게 답변으로 제공해주시기 바랍니다

    2013년 12월 19일 목요일 오전 6:50
    중재자
  • use tempdb
    go

    create table d_date (d_type varchar(10))
    go

    insert into d_date values ('2014-01-01')
    insert into d_date values ('2014-01-02')
    insert into d_date values ('2014-01-03')
    go

    create table user_date (d_type varchar(10))
    insert into user_date values ('2014-01-01')
    insert into user_date values ('2014-01-03')
    go


    select a.d_type, case when b.d_type is null then 0 else 1 end as c_type
    from d_date as a
     left outer join user_date as b
      on a.d_type = b.d_type

    2014년 1월 6일 월요일 오후 11:55