안녕하세요, 저는 여기에 뭔가 복잡한 것을 시도한다고 생각합니다. 어쩌면 여기서 너를 도울 수있을거야.mysql이 사용자 ID가있는 두 개의 테이블을 선택하고 타임 스탬프를 비교하여 그것을 계산합니다.
나는 두 개의 테이블을 가지고 있습니다 : 수입과 지불금입니다.
수입에는 datetime 및 기타 자료로 userid, amount, timestamp가 있습니다. 사용자가 무엇인가를 얻었을 때 정보 만 있습니다. 예 :
id | user_id | amount | timestamp |
1 | 2 | 1050 | 31days ago |
2 | 1 | 20 | 10days ago |
3 | 1 | 10 | 9 days ago |
4 | 2 | 10000 | 9 days ago |
...
지불금 사용자가 X 실적 이상이면 지급에 대한 항목을 날짜로 사용자 ID, 양, 타임 스탬프를 가지고있다 지금 내 문제에 1000 예
id | user_id | payout_amount | timestamp |
1 | 2 | 1050 | 30days ago |
...
말할 수 있습니다. 얼마나 많은 판매 대금이 지급되지 않았는지 (대금 지급 항목이없는) COUNT 개를보고 싶습니다. 이것은 의미합니다. payouts.timestamp와 동일한 사용자 ID가있는 earnings.timestamp를 비교하고 지불 항목에 새 항목이 있는지 확인해야합니다. 그렇다면 얼마나 많은 지 계산하십시오. (그래서 나는 처음에 수입을 합산하는 데 필요한 것을 생각합니다). 이것이 가능한지 확실하지 않습니다.
mysql과 혼자서는 불가능한 PHP로도 할 수 있습니다.
예를 들어 결과는 다음과 같아야합니다. 사용자 ID 1의 수입이 30이므로 금액에 도달하지 않았으므로 지급액 테이블에 항목이 없습니다. 사용자 ID 2는 10000이지만 우리는 지불금 테이블을 실행하거나 지불 항목 테이블에 항목을 만들지 않아 지불금이 없습니다. 그는 단지 오래된 지불금을 가지고 있고 새로운 수입은 지불되지 않습니다.
편집 : 10 일 전의 것들이 단지 예입니다. 내가 거기 실제 날짜 유형 EDIT2를 사용
select COUNT(e.amount) FROM earnings e, payouts p where p.payout_timestamp < e.timestamp AND p.user_id = e.user_id GROUP BY p.user_id, e.user_id
이 이동 :
이| Count(e.amount) |
| 2 |
| 1 |