개발 Q&A

제목 통계기간 검색 쿼리에 대한 질문합니다.
글쓴이 바다의이무기 작성시각 2015/12/28 03:45:29
댓글 : 4 추천 : 0 스크랩 : 0 조회수 : 12252   RSS

지금 통계페이지 작업을 하고 있습니다.각 컬럼에 view_date가 있습니다. 이 view_date로 기간 검색을 해서 통계데이터를 뿌려주고 싶습니다.기간 검색을 하면 계속 값이 없다고만 나옵니다. 이것 때문에 3일동안 삽질을 했습니다. between 써서 기간 검색하는건 알겠는데.. 각 테이블에 veiw_date로 기간 검색하는 방법을 모르겠습니다. 통계테이블이나 union쓰지 않고 지금 join한 이쿼리에서 수정하고 싶습니다.어떻게 검색해야 하는지 고수분들의 도움의 절실히 필요합니다.

작성한 쿼리는 다음과 같습니다.

select A.*  , D.idx as didx , D.view_date , (select sum(view_count) from coupon where company_idx = A.idx) as cp_view_count    , (select count(*) as co_count from coupon_put where coupon_idx = didx group by coupon_company_idx) as cp_count  , (select sum(view_count) from community_board where company_idx = A.idx) as cm_count , (select sum(view_count) from tmenu_service where company_idx = A.idx) as mu_count from company A left join coupon D on A.idx = D.company_idx   where 1=1    and date_format(A.view_date, '%Y-%m-%d') between '2015-12-01 ' and ' 2015-12-28' group by A.company_name, A.view_date order by A.idx desc,A.reg_date desc

 다음글 이중포문 관련 질문입니다.(foreach) (2)
 이전글 flexslider 슬라이드에서 youtube 동영상... (1)

댓글

당근병아리 / 2015/12/28 06:23:42 / 추천 0

select A.*  , D.idx as didx , D.view_date

 , (select sum(view_count) from coupon where company_idx = aidx) as cp_view_count  

, (select count(*) as co_count from coupon_put where coupon_idx = didx group by coupon_company_idx) as cp_count  

, (select sum(view_count) from community_board where company_idx = aidx) as cm_count 

, (select sum(view_count) from tmenu_service where company_idx = aidx) as mu_count 

from company A left join coupon D on A.idx = D.company_idx    

where 1=1    and date_format(A.view_date, '%Y-%m-%d') between '2015-12-01 ' and ' 2015-12-28'

group by A.company_name, A.view_date order by A.idx desc,A.reg_date desc

 

1. A.reg_date 

  >> order by A.idx desc,,A.reg_date desc   2개 있습니다.

 

2. A.view_date  

  date가 있는지 확인하시기 바랍니다..

  join보다는 단일 table으로 확인하시기 바랍니다.

 

3. aidx 

 어느 테이블이고 기간은 어떻게 되는지 확인하시기 바랍니다.

 

바다의이무기 / 2015/12/28 06:46:47 / 추천 0

당근병아리님 답변 감사합니다. 쿼리 붙여넣기를 잘못했나 보네요.. 

1. ,가 2개 있는 문제 질문한다고 쿼리 붙여넣기 하다가 생긴 오타 (본 통계쿼리에 문제없음)

2. 단일 date확인 

(select *  from company  where 1=1 and date_format(view_date, '%Y-%m-%d') between '2015-12-01 ' and ' 2015-12-28')

조회 잘 됩니다.

3. aidx

A.idx 입니다. 쿼리 수정하다가 질문 글 작성해서 수정중인 쿼리를 붙여넣기 하다가 생긴오류 입니다.

지금 쿼리는 잘 작동됩니다. 근데 쿼리 결과값이 없다고 나와서 문제입니다.

단일 date확인 하면 결과값이 한개 나오는데.. 통계를 구할려면 값이 없다고 나옵니다.

'2015-12-01 ' and ' 2015-12-28' 안의 통계니깐 단일 date확인 결과값과 같이 한개가 나와야 정상인데....ㅠㅠ

뫄뫄잉뿌 / 2015/12/28 10:13:50 / 추천 0

between 절에서 and뒤에 ' 2015-12-28'에 앞에 띄어쓰기 없애고 다시 실행해보세요 ^^

바다의이무기 / 2015/12/28 13:22:56 / 추천 0

뫄뫄잉뿌님 답변 갑사합니다..  

님 말씀대로 앞에 띄어쓰기가 문제였던 것 같습니다.

php trim()함수로 먼저 공백 없애주니 결과값이 제대로 나옵니다.

공백때문에 3일을 삽질을 했네요..ㅠㅠ