Ich versuche herauszufinden, warum diese Abfrage SELECT gut, aber ich kann es nicht verwenden, um eine temporäre Tabelle zu erstellen ... Die IF = '', 0
Sachen waren nicht in der ursprünglichen Abfrage vorhanden, so dass ich es zu machen Sicher, dass ich nicht versucht habe, etwas zu summieren, das möglicherweise eine leere Zeichenfolge sein könnte, aber es hat das Problem nicht behoben. Wählen Sie diese Option funktioniert und gibt das richtige Ergebnis Satz:MySQL-Abfrage funktioniert wie normal SELECT, aber nicht in CREATE TABLE AS ..?
SELECT
SUM(((IF(reserve_transactions.Revenue = '',
0,
reserve_transactions.Revenue) * IF(reserve_transactions.Confidence = '',
0,
reserve_transactions.Confidence))/100)) AS rawadjusted
FROM
(store_locations
LEFT JOIN reserve_transactions ON ((store_locations.ID = location_sales)))
GROUP BY store_locations.Loc_Long
Aber dies nicht:
CREATE TEMPORARY TABLE tmptable_which_doesnt_work AS SELECT
SUM(((IF(reserve_transactions.Revenue = '',
0,
reserve_transactions.Revenue) * IF(reserve_transactions.Confidence = '',
0,
reserve_transactions.Confidence))/100)) AS rawadjusted
FROM
(store_locations
LEFT JOIN reserve_transactions ON ((store_locations.ID = location_sales)))
GROUP BY store_locations.Loc_Long
Der Fehler ist: Error Code: 1292. Truncated incorrect DECIMAL value: ''
ich weitere Fragen haben, wo die Situation die gleiche ist, tatsächlich . Manchmal mit anderen abgeschnittenen falschen Typen. Was fehlt mir hier?
Vielleicht sind Sie in einem 'strict sql mode' – 1000111
Ich würde sagen, Ihre Datenbank ist schlecht entworfen, wenn' Revenue' ist eine 'VARCHAR' Spalte, wenn es offensichtlich sollte sei eine numerische Spalte, z 'DECIMAL'. – Andreas
Mögliches Duplikat von [mysql-Fehler 1292 bei Verwendung der Anweisung cast in update] (http://stackoverflow.com/q/21142273/5221149). – Andreas