2013-12-11 3 views
0

이 테이블은 p_payments입니다. 테이블은 열 payment_amount, payment_statuscreatedtime 있습니다쿼리 수 (지난 30 일) 행의 합계

p_payments 
____________________________ 
payment_status  varchar(25) 
payment_amount  decimal(7,2) 
createdtime   datetime 

어떻게 수익 WHERE payment_status = completed의 지난 30 일의 합계를 계산하는 쿼리를 만들 수 있습니까?

내 테이블

payments_status  payment_amount  createdtime 
---------------------------------------------------------- 
Completed    1.00   2013-09-29 21:45:02 
Denied     2.00 
Failed     1.50 
... etc 
+0

카운트 날짜가 실제 날짜로부터입니까? –

답변

3
SELECT Sum(payment_amount) 
FROM p_payments 
WHERE payments_status = 'completed' 
     AND createdtime >= Date_Sub(Curdate(), INTERVAL 30 day) 
+0

수정을 위해 -30 –

+0

+1 대신에'DATE_SUB' 함수를 사용하는 것이 더 우아합니다 :) –

1
SELECT SUM(p.`payment_amount`) AS `total_payments` 
FROM `payments` p 
WHERE DATEDIFF(NOW(), p.createdtime) <= 30 
    AND p.payment_status = 'Completed' 
+0

도움을 주신 덕분에 – Dany

+0

감사합니다. – humphrey

관련 문제