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?