TS: Tabellenname während Abfrage erstellen

Beitrag lesen

Hello,

habe mal ein kleines Problem, mit dem ich mich schon ein paar Stunden rumschlage. Es geht um folgendes: Ich habe eine Tabellenabfrage in einer Datenbank erstellt, die auch grundsätzlich funktioniert. Der code (in Kurzform):

"select a.wert1,a.wert2,a.wert3 from tabelle1 AS a JOIN tabelle_[a.wert2] AS b where a.wert1 = 0 AND wert3 >= x AND b.werta = y ORDER BY datum DESC"

Wie gesagt, das klappt (Original ist bedeutend länger). Das Problem ist die 2.Tabelle, deren Name sich normalerweise aus "tabelle" + a.wert2 (im beispiel in eckigen Klammern), also aus einem Wert der ersten Tabelle zusammensetzt.

Ich habe etliche Schreibweisen probiert: ...tabelle."a.wert2."..., ohne Anführungszeichen, etc. Setze ich statt [a.wert2] sofort die richtige Zahl ein, klappt alles. Meine Frage ist nun, ob es überhaupt möglich ist, den Tabellennamen während einer Abfrage zu generieren? Wenn ja wäre ich für einen Tip dankbar, wo ich solche Beispiele oder Hilfe finden kann.

Bei MySQL geht das mit EXECUTE, Benutzerfunktionen und prepared Statements. Ist also leider etwas komplexer. Ich habe das auch erst einmal gemacht, finde es jetzt aber auf die Schnelle nicht.

Musst Du dich bitte mal durchwühlen. Wenn es geklappt hat, bitte hier posten, damit das Ergebnis dokumentiert ist.

  1. Benutzerdefinierte Funktion aufbauen
  2. in der Funktion ein prepared Statement definieren
  3. das Statement mit EXECUTE aufrufen
  4. Das Ergebnis mit SELECT abfragen

Das prepared Statement geht nur durch die Hintertür, siehe 3.

Liebe Grüße
Tom S.

--
Die Krawatte ist das Kopftuch des Westens