ja bym zrobił coś takiego... powiedzmy że tabela wygląda tak:
Kod
id_grupa || id_faktura || zaplacona || id_klient || licznik
1 || 23 || false || 1 || 1
1 || 24 || false || 1 || 1
2 || 25 || false || 2 || 1
2 || 26 || false || 2 || 1
2 || 27 || false || 2 || 1
czyli masz przyporządkowane grupy dla każdego użytkownika. i teraz zmieniła Ci się tylko faktura 26 w grupie 2 i w wyniku masz tak:
Kod
id_grupa || id_faktura || zaplacona || id_klient || licznik
1 || 23 || false || 1 || 1
1 || 24 || false || 1 || 1
2 || 25 || false || 2 || 1
2 || 26 || true || 2 || 1
2 || 27 || false || 2 || 1
pobierasz ilość wszystkich faktur gdzie zapłacona == false i wszystkie faktury ogólnie w ramach klienta, więc otrzymasz:
w przypadku klienta 2zapłacona == false - 2
wszystkie - 3
2 != 3
więc wiesz że jedna zapłacona była, więc nic nie robisz
w przypadku klienta 1zapłacona == false - 2
wszystkie - 2
2 == 3
więc wiesz że nic nie zrobił i możesz zwiększyć licznik + 1.
to jest mój pomysł, chyba że masz jakieś szczególne zapotrzebowanie na inną funkcjonalność więc to jest czas, żebyś o tym powiedział.