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

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

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' 는 그 조건에 맞는 그것이 없기때문 아닌가요?

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

답변을 작성하시기 전에 로그인 해주세요.
전체 128
QA 내용 검색

회원로그인

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