Hallo
SELECT x.datum, x.zeilen, y.datum, y.zeilen, CAST(COALESCE(y.zeilen, 0) AS FLOAT)/ x.zeilen AS Quote FROM (SELECT FROM_UNIXTIME(last, '%Y%-%m-%d'), COUNT(*) AS zeilen FROM access GROUP BY FROM_UNIXTIME(last, '%Y%-%m-%d')) x LEFT JOIN (SELECT date( `Erstelldatum` ), COUNT(*) AS zeilen FROM slow GROUP BY date( `Erstelldatum` )) y ON x.FROM_UNIXTIME(last, '%Y%-%m-%d') = y.date( `Erstelldatum` )ergibt leider bei mir nicht obige Tabelle, sondern:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FLOAT)/ x.zeilen AS Quote FROM (SELECT FROM_UNIXTIME(last, '%Y%-%m-%d'), COUNT(*' at line 1Da ich den oben eingesetzten Begriff "CAST(COALESCE(y.zeilen, 0) AS FLOAT)" nicht wirklich verstehe, kann ich auch die Fehlermeldung nicht verstehen.
Mit COALESCE werden die Werte einer Spalte durchgegangen und der erste Wert, der nicht NULL ist, ausgegeben. Mit CAST erfolgt eine Typumwandlung, hier mit AS FLOAT als Fließkommazahl. Wenn ich die Auflistung der für CONVERT möglichen Datentypen, die auch für CAST gilt, richtig interpretiere, gibt es keinen zulässigen Datentypen FLOAT, dafür aber den Typ DECIMAL.
SELECT
x.datum,
x.zeilen,
y.datum,
y.zeilen,
CAST(COALESCE(y.zeilen, 0) AS DECIMAL([Gesamtanzahl der Stellen], [Anzahl der Nachkommastellen])) / x.zeilen AS Quote
FROM …
Tschö, Auge
--
Wo wir Mängel selbst aufdecken, kann sich kein Gegner einnisten.
Wolfgang Schneidewind *prust*
Wo wir Mängel selbst aufdecken, kann sich kein Gegner einnisten.
Wolfgang Schneidewind *prust*