WITH customer_rentals AS (
SELECT
f.title,
r.rental_date,
r.return_date,
p.payment_date,
f.rental_rate,
p.amount,
(p.amount - f.rental_rate) AS lateness_penalty
FROM
customer c
JOIN payment p ON c.customer_id = p.customer_id
JOIN rental r ON p.rental_id = r.rental_id
JOIN inventory i ON r.inventory_id = i.inventory_id
JOIN film f ON i.film_id = f.film_id
WHERE
c.first_name = 'DOROTHY'
AND c.last_name = 'TAYLOR'
AND p.payment_date BETWEEN '2005-08-01' AND '2005-08-31 23:59:59'
)
SELECT
title,
rental_date,
return_date,
payment_date,
rental_rate,
lateness_penalty,
amount
FROM
customer_rentals
UNION ALL
SELECT
'Total' AS title,
NULL AS rental_date,
NULL AS return_date,
NULL AS payment_date,
SUM(rental_rate) AS rental_rate,
SUM(lateness_penalty) AS lateness_penalty,
SUM(amount) AS amount
FROM
customer_rentals
ORDER BY
CASE WHEN title = 'Total' THEN 1 ELSE 0 END,
payment_date;
;
show status like 'Last_query_cost';