sql 날짜 지정해서 검색하는 질문드립니다.

sql 날짜 지정해서 검색하는 질문드립니다.

QA

sql 날짜 지정해서 검색하는 질문드립니다.

본문

sql을 공부중인 초보자 입니다

<?php
                        $prevdate = "2020-12-01";
                        $nextdate = "2020-12-13";
                        $sql = " select sum(mb_point) as sum_point from g5_member where mb_1 = '서울대학교' and date('{$prevdate}') <= date(po_rel_action) >= date('{$nextdate}') ";
                        $row = sql_fetch($sql);
                        $sum = $row['sum_point'];
                        echo $sum." 포인트";

?>

회원중 여분필드가 서울대학교인 사람들의 포인트 적립일시를 기준으로 

기간을 정해서 포인트 총합을 구하려고 저렇게 짰는데 아무것도 나오지않아서 질문드립니다.

 

이 질문에 댓글 쓰기 :

답변 4


<?php
$prevdate = "2020-12-01";
$nextdate = "2020-12-13";
$sql = "
  select sum(po_point) as sum_point
    from g5_point
   where po_datetime between '{$prevdate}' and '{$nextdate}'
     and mb_id in (select mb_id from g5_member where mb_1 = '서울대학교')
";
$row = sql_fetch($sql);
$sum = $row['sum_point'];
echo $sum." 포인트";
?>

`mb_1` = '서울대학교' AND `po_rel_action` >= '".$prevdate."' AND `po_rel_action` <= '".$nextdate."'

날짜 비교만 하실 거면 이런 식으로 하셔야 하지 않을까 싶네요.


SELECT SUM(DISTINCT m.`mb_point`) FROM `g5_member` AS m LEFT JOIN `g5_point` AS p ON m.`mb_id` = p.`mb_id` WHERE m.`mb_1` = '서울대학교' AND p.`po_rel_action` BETWEEN '".$prevdate."' AND '".$nextdate."'

제가 테스트 데이터가 없어서 정상적으로 작동할지 의문입니다.

계속 도움 주셔서 감사합니다.
<?php
                        $prevdate = "2020-12-01 00:00:00";
                        $nextdate = "2020-12-31 23:59:59";
                        $sql = " SELECT SUM(DISTINCT m.`mb_point`) FROM `g5_member` AS m LEFT JOIN `g5_point` AS p ON m.`mb_id` = p.`mb_id` WHERE m.`mb_1` = '서울대학교' AND p.`po_datetime` BETWEEN '".$prevdate."' AND '".$nextdate."' ";
                        $row = sql_fetch($sql);
                        $sum = $row['sum_point'];
                        echo $sum." 포인트";
                    ?>
혹시 날짜 형식이 문제인가 해서 이렇게 넣었는데도 안나오네요.

정적 분석 :

분석 중에 2개의 오류가 발생했습니다.

Unexpected beginning of statement. (near "$prevdate" at position 0)
Unexpected beginning of statement. (near ""2020-12-01"" at position 12)
SQL 질의:

$prevdate = "2020-12-01"

MySQL 메시지: 문서

#1064 - 'SQL 구문에 오류가 있습니다.' 에러 같읍니다. ('$prevdate = "2020-12-01"' 명령어 라인 1)

라고 나오네요

echo $sql 이라고 하면

SELECT SUM(DISTINCT m.`mb_point`) FROM `g5_member` AS m LEFT JOIN `g5_point` AS p ON m.`mb_id` = p.`mb_id` WHERE m.`mb_1` = '서울대학교' AND p.`po_datetime` BETWEEN '2020-12-01 00:00:00' AND '2020-12-31 23:59:59'

이렇게 출력됩니다.

 $sql = " select sum(mb_point) as sum_point from g5_member where mb_1 = '서울대학교' and po_rel_action between '".$prevdate."' and '".$nextdate."'";

https://www.google.co.kr/search?ei=Mj_YX5DaMcelmAWekZ74BA&q=mysql+between+%EB%82%A0%EC%A7%9C&oq=mysql+between+%EB%82%A0%EC%A7%9C&gs_lcp=CgZwc3ktYWIQAzICCAAyAggAMgIIADoHCAAQsQMQQzoECAAQQ1C6DVjLGGCDGmgAcAB4AIABwwGIAYcIkgEDMC43mAEAoAEBqgEHZ3dzLXdpesABAQ&sclient=psy-ab&ved=0ahUKEwiQu9TSls_tAhXHEqYKHZ6IB08Q4dUDCA0&uact=5

 

이걸로 검색하셔서 좀더 자세한건 보시면 될거 같습니다.

해당 테이블 화면을 캡쳐해주셔야 정확한건 알수 있을거 같네요

 

구문이 이상이 없다면 데이터에 실제 비교하는 데이터가 없어서 발생하는거 같네요.

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

회원로그인

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