Witam Z racji, że nie znam dobrze struktury lms'a to proszę o komentarz do tak sformuowanego zapytania:
SELECT users.id AS id, lastname, name, email, phone1, SUM((type * -2 + 7) * cash.value) AS balance, (dayofmonth(now()) - assignments.at) AS dzien FROM users LEFT JOIN cash on users.id = cash.userid LEFT JOIN assignments on users.id = assignments.userid GROUP BY users.id, at HAVING balance < 0 and dzien > 14
Gdzie dzień w having był by parametrem wywołania, czyli można by uzyskać listę :
dzien = 0 - po naliczeniu opłaty dzien = 7 - powiedzmy termin płatniości 7 dni minął dzien = 14 - inf. że jutro odcinamy.
jak wcześniej mówiłem, jeśli miałoby to być uniwersalne rozwiązanie, to nie będzie to takie proste, bo: 1. dayofmonth() nie zadziała na postgresie 2. działa tylko z opłatami miesięcznymi, a co z rocznymi, kwartalnymi, tygoniowymi? 3. nie zadziała jeśli np. at = 28
najtrudniejsze oczywiście jest 2.