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

매출이 오르면 내리는 수수료! 지금 수수료센터에서 전자결제(PG)수수료 비교견적 신청해 보세요!
쿼리문 한번 수정해 주십시오. 부탁드립니다.

QA

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

본문

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

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

정리하자면 

 

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

1560306953 --- 3개팔림

1560306444 --- 1개팔림

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

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

 

<?php
include_once('./_common.php');
$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);
$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);
?>
<?php
for ($i=0; $row=sql_fetch_array($result01); $i++)
{
    echo $result02['cnt'];
    echo("---");
    echo $row['it_id'];
    echo("</br>");
}
?>

 

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

이 질문에 댓글 쓰기 :

답변 2

쿼리문만 짜드리면


SELECT a.it_id, a.it_name, count(b.it_id)
FROM g5_shop_item a, g5_shop_cart b
WHERE a.it_id = b.it_id
    and a.it_use = '1'
    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 , 수량

을 추출합니다.

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

그럴때는

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


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 (판매상품조건)
와 같이 걸어도 됩니다만
전체상품이 다 나온다는점
그래서 쿼리가 느려질수 있다는걸 감안하셔야 합니다

속도개선의 방법들은 풀어가야할 숙제겠죠


<?php
include_once('./_common.php');
$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);
$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으로 나와요 ㅜㅜ
//--
$sql_today_02 .= " group by  date_format(ct_time, '%Y-%m-%d')"; // 추가 쿼리 부분
//--
$result02 = sql_fetch($sql_today_02);
?>
<?php
for ($i=0; $row=sql_fetch_array($result01); $i++)
{
    echo $result02['cnt'];
    echo("---");
    echo $row['it_id'];
    echo("</br>");
}
?>

 

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

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

답변을 작성하시기 전에 로그인 해주세요.
전체 0
QA 내용 검색
  • 개별 목록 구성 제목 답변작성자조회작성일
  • 질문이 없습니다.

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT