Einzelnen Beitrag anzeigen

nahpets
(Gast)

n/a Beiträge
 
#3

Re: Alternative zu dynamic sql-cursor problematik

  Alt 6. Mai 2010, 07:37
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 einemCreate 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.
  Mit Zitat antworten Zitat