테스트 사이트 - 개발 중인 베타 버전입니다

쿼리문 한번 수정해 주십시오. 부탁드립니다. 채택완료

오마이갖 6년 전 조회 4,114

아래 소스 한번 봐주십시오. 별도 페이지에 제품 it_id 가 나오고 it_id 가 3일전 몇개 팔렸는지 확인하는 소스입니다. 

근데   아래 1560306953 를 넣으면 모든 상품 it_id 값 옆에 3일전에 팔린 1개로 찍히게 됩니다.

정리하자면 

 

===============================

1560306953 --- 3개팔림

1560306444 --- 1개팔림

===============================

형식으로 처리 하려고 합니다. 고수님들 부탁드립니다. 

 

<?php

include_once('./_common.php');</p>

<p>$sql_today_01 =" select * from {$g5['g5_shop_item_table']} where it_use = '1' and it_11 = '' order by ca_id";

$result01 = sql_query($sql_today_01);</p>

<p>$sql_today_02 = " select count(*) as cnt from {$g5['g5_shop_cart_table']} where   date_format(ct_time, '%Y-%m-%d') = '" . date('Y-m-d',strtotime(G5_TIME_YMD.' -5 day')). "' and ct_status <> '취소' and ct_status <> '쇼핑' and it_id = '1560306953'";  // 이곳에  $it_id 를 넣으면 0으로 나와요 ㅜㅜ

$result02 = sql_fetch($sql_today_02);

?></p>

<p><?php

for ($i=0; $row=sql_fetch_array($result01); $i++)

{

    echo $result02['cnt'];

    echo("---");

    echo $row['it_id'];

    echo("</br>");

}

?></p>

<p>

 

내용 읽어 주셔서 감사드립니다.

댓글을 작성하려면 로그인이 필요합니다.

답변 2개

채택된 답변
+20 포인트
플래토
6년 전

쿼리문만 짜드리면

</p>

<p>SELECT a.it_id, a.it_name, count(b.it_id)</p>

<p>FROM g5_shop_item a, g5_shop_cart b

WHERE a.it_id = b.it_id</p>

<p>    and a.it_use = '1'</p>

<p>    and a.it_11 = ''

    AND b.ct_status NOT IN ('취소','쇼핑')

    AND date(b.ct_time) = (NOW() - INTERVAL 3 DAY)

GROUP BY a.it_id, a.it_name

위의 쿼리는 3일전일자에 판매가 이루어진 모든 상품의 리스트

it_id, it_name , 수량

을 추출합니다.

로그인 후 평가할 수 있습니다

답변에 대한 댓글 3개

오마이갖
6년 전
정말 감사드립니다. 정상적으로 처리 되었습니다. 한가지만 질문 드리겠습니다.
저기서 it_id, it_name , 수량 을 추출하는데요 판매 되는건이 없으면 내용이 없는데요 판매컨수가 없어도 t_id, it_name , 0개 수량
이런식으로 처리를 하고 싶은데 도움좀 부탁드립니다. 감사드립니다.
플래토
6년 전
그럴때는

아이템을 기존테이블로두고
카트의 값의 정보만 카운트를 걸어도 됩니다


select a.it_id, a.it_name,
(select count(*) cnt from g5_shop_cart b
where b.it_id =a.it_id
and 위의 일자조건) cnt
g5_shop_item a
where (판매상품조건)
와 같이 걸어도 됩니다만
전체상품이 다 나온다는점
그래서 쿼리가 느려질수 있다는걸 감안하셔야 합니다

속도개선의 방법들은 풀어가야할 숙제겠죠
오마이갖
6년 전
플래토님 죄송하지만 조그만더 구체적으로 알려주십시오.. ㅜㅜ

댓글을 작성하려면 로그인이 필요합니다.

6년 전

</p>

<p><?php

include_once('./_common.php');</p>

<p>$sql_today_01 =" select * from {$g5['g5_shop_item_table']} where it_use = '1' and it_11 = '' order by ca_id";</p>

<p>$result01 = sql_query($sql_today_01);</p>

<p>$sql_today_02 = " select count(*) as cnt from {$g5['g5_shop_cart_table']} where   date_format(ct_time, '%Y-%m-%d') = '" . date('Y-m-d',strtotime(G5_TIME_YMD.' -5 day')). "' and ct_status <> '취소' and ct_status <> '쇼핑' and it_id = '1560306953'";  // 이곳에  $it_id 를 넣으면 0으로 나와요 ㅜㅜ</p>

<p>//--</p>

<p>$sql_today_02 .= " group by  date_format(ct_time, '%Y-%m-%d')"; // 추가 쿼리 부분</p>

<p>//--</p>

<p>$result02 = sql_fetch($sql_today_02);

?></p>

<p><?php

for ($i=0; $row=sql_fetch_array($result01); $i++)

{

    echo $result02['cnt'];

    echo("---");

    echo $row['it_id'];

    echo("</br>");

}

?></p>

<p>

 

그리고 it_id = '1560306953' 는 그 조건에 맞는 그것이 없기때문 아닌가요?

테이블 열어놓고 조건칼럼들 비교해보세요. 위 조건정도로 디비가 거짓말 안해요.

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인