MySQL Zählen von Zeilen mit Schleife

Ich habe folgende Tabelle:

+-------------+--------------+ 
| product     | purchased    |
+-------------+--------------+ 
| Hammer      | <timestamp>  |
| Nipper      | <timestamp>  |
| Saw         | <timestamp>  |
| Nipper      | <timestamp>  |
| Hammer      | <timestamp>  |
| Hammer      | <timestamp>  |
| Saw         | <timestamp>  |
| Saw         | <timestamp>  |
| Saw         | <timestamp>  |
+-------------+--------------+

Ich möchte eine Zusammenfassung über den Garantiestatus dieser Produkte erhalten. Die Garantie sollte 5 Jahre ab Kaufdatum betragen. Mit dem heutigen Datum sollte es möglich sein zu überprüfen, ob ein Produkt unter die Garantie fällt oder nicht (basierend auf dem Kaufdatum). Außerdem möchte ich jetzt wissen, wann das zuletzt gekaufte Produkt außerhalb der Garantie liegt. Hier ist eine Beispieltabelle:

+-------------+--------------+----------------+------------------+------------------+
| product     | count        | warranty valid | warranty expired | last p. warranty |
+-------------+--------------+----------------+------------------+------------------+
| Hammer      | 3            | 1              | 2                | 10.03.2015       |
| Nipper      | 2            | 2              | -                | 01.01.2014       |
| Saw         | 4            | 1              | 3                | 02.12.2013       |
+-------------+--------------+----------------+------------------+------------------+

Ich habe versucht, die Abfrage für dieses Beispiel zu erstellen, aber ich wusste nicht, wie die Ergebnisse für jedes Produkt wiederholt werden, um gültige Garantien usw. zu zählen. Das habe ich gerade:

SELECT
    product,
    date_format(from_unixtime(purchased), '%d.%m.%Y') AS purchaseDate,
    date_format(date_add(from_unixtime(purchased), INTERVAL 5 YEAR), '%d.%m.%Y') AS warrantyEnd,
    (
        SELECT
            COUNT(product)
        FROM
            productWarranty
    ) AS count
FROM
    productWarranty s
GROUP BY
    product

Ich weiß nicht, wie ich die Unterabfrage schreiben soll, weil ich so etwas wie WHERE product = Hammer verwenden muss. Aber wie kann ich sql anweisen, für jedes einzelne Produkt eine Schleife auszuführen?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage