본문 바로가기
MySql

MySQL mysql에서 두 열의 차이점

by 베이스 공부 2020. 12. 3.
반응형

두 개의 열 (credit 및 debited_amount)이 있고 그 차이를 계산하고 싶습니다 .0보다 큰 레코드를 검색하거나 debited_amount 필드가 Null 인 경우에만 필요합니다. 값이 0이면 신경 쓰지 마십시오. 여기 내가 시도한 sqlquery가 있습니다.

SELECT `p_Id`,`user_id`,`doc_id`,`credit` ,`app_date`,`expires_on`,(credit -debited_amount) AS credit
FROM `wp_loyalty_credits` WHERE `expires_on`>now();

 

해결 방법

 

where 절에 논리를 추가하기 만하면됩니다.

SELECT `p_Id`,`user_id`,`doc_id`,`credit` ,`app_date`,`expires_on`,
       (credit -debited_amount) AS credit
FROM `wp_loyalty_credits`
WHERE `expires_on`>now() and (credit > debited_amount or debited_amount is null);

쿼리가 select 에서 credit 를 재정의합니다. 그러나 이것은 where 절에서 열 별칭을 참조 할 수 없기 때문에 관련이 없습니다. 따라서 credit 열이 사용되었습니다. 테이블 별칭을 추가하면 더 명확합니다.

SELECT lc.p_Id, lc.user_id, lc.doc_id, lc.credit, lc.app_date, lc.expires_on,
       (lc.credit - lc.debited_amount) AS credit
FROM `wp_loyalty_credits` lc
WHERE lc.expires_on > now() and
      (lc.credit > lc.debited_amount or lc.debited_amount is null);

 

참조 페이지 https://stackoverflow.com/questions/25077898

 

 

반응형

댓글