У меня есть таблица отчетов с соответствующими полями:
user_id (int 11)
submitted_date (datetime)
approved_flag (shortint 1)
Есть несколько строк на user_id
, некоторые с approved_flag
= 0, некоторые с approved_flag
= 1 и каждая с уникальным submitted_date
.
Мне нужно получить количество утвержденных и неутвержденных отчетов. Но я хочу только посчитать самый последний отправленный отчет для пользователя (самый последний submitted_date
), независимо от approved_flag
.
Итак, если было 4 таких записи:
user_id, submitted_date, approved_flag
1, 2009-04-01 01:00, 1
1, 2009-04-01 02:00, 0
1, 2009-04-01 03:00, 1 (using this record)
2, 2009-04-02 01:00, 1 (using this record)
счет будет 2 утвержден и не утвержден, и если бы у нас было
user_id, submitted_date, approved_flag
1, 2009-04-01 01:00, 1
1, 2009-04-01 02:00, 0
1, 2009-04-01 03:00, 0 (using this record)
2, 2009-04-02 01:00, 0
2, 2009-04-02 02:00, 1 (using this record)
число будет 1 утверждено (идентификатор пользователя 2) и 1 не утверждено (идентификатор пользователя 1).
Подведем итог еще раз, потому что это не так просто описать: я хочу, чтобы общее количество уникальных пользователей в таблице (независимо от количества строк на пользователя) было разбито на «утверждено» и «не утверждено» 'на основе approved_flag
самого последнего отчета на пользователя.
Любая помощь будет принята с благодарностью, спасибо!