Загрузка данных


SELECT
    u.familiya AS `Фамилия`,
    u.imya AS `Имя`,
    u.otchestvo AS `Отчество`,

    COUNT(DISTINCT d.id_dogovor) AS `Количество договоров`,

    ROUND(
        SUM(
            c.cena * 0.001 *
            DATEDIFF(d.data_vozvrata, d.data_vidachi)
        ),
        2
    ) AS `Сумма договоров`,

    COUNT(DISTINCT s.id_strafa) AS `Количество штрафов`,

    SUM(vs.summa) AS `Сумма штрафов`

FROM users u

JOIN dogovor d
    ON u.id_user = d.id_user

JOIN car c
    ON d.id_car = c.id_car

JOIN shtrafi s
    ON d.id_dogovor = s.id_dogovor

JOIN vidy_shtrafov vs
    ON s.id_shtraf = vs.id_shtraf

GROUP BY
    u.id_user,
    u.familiya,
    u.imya,
    u.otchestvo

HAVING COUNT(DISTINCT d.id_dogovor) > 2

ORDER BY `Сумма штрафов` DESC;