Hallo,
Du hast da doch eine temporäre Tabelle, die Du wegwirfst und neu erstellst und dann per Cursor füllen willst.
Wie wäre denn mit einem
Create Table temp_table_value as select ...
also ungefähr so:
SQL-Code:
SET select_statement = CONCAT('Create Table temp_table_value as SELECT datum, ',
'SUM(CASE WHEN typ_id = 3 THEN wert ELSE 0 END) AS value ',
'FROM element e ',
'WHERE e.datum BETWEEN ? AND ? ',
'AND e.pilot_id IN (?) ',
'GROUP BY datum;');
...
PREPARE sql_stmt FROM @tmp_sql;
EXECUTE sql_stmt USING @tmp_in_startdate, @tmp_in_enddate, @tmp_used_pilots;
Das sollte Dir den Cursor ersparen.
Mangels
MySQL-Verfügbarkeit ungetestet.
Sofern möglich, ist die von Omata vorgeschlagene Variante vorzuziehen. Wenn
MySQL Case im Select-Statement unterstützt, kommst Du mit einem Statement aus und hast damit Deinen Cursor.