Announcement

Collapse
No announcement yet.

TSQL UNION mit verschiedenen Variablen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • TSQL UNION mit verschiedenen Variablen

    Servus zusammen,

    ich bastel eben an einem PHP-Script, das mir ein Array ausliest und mir anhand dessen eine TSQL-Abfrage zusammenbaut.

    Ich möchte gern mehrere Abfragen mit UNION verbinden aber in jeder der Abfragen soll eine Variable anders besetzt werden:


    DECLARE @Var1 FLOAT;


    SET @Var1 = 150;
    SELECT Zeile1, @Var1 AS Zeile2
    FROM Tabelle

    UNION

    SET @Var1 = 180;
    SELECT Zeile1, @Var1 AS Zeile2
    FROM Tabelle

    UNION

    SET @Var1 = 1000;
    SELECT Zeile1, @Var1 AS Zeile2
    FROM Tabelle

    Das geht so natürlich nicht. Aber ich Frage mich gerade, wie ich es lösen soll. Geht das überhaupt oder sollte ich lieber alle Variablen ganz am Anfang deklarieren und beschreiben?

    Als jemand, der aus der Webprogrammierung kommt, ist die Syntax von SQL doch schon manchmal recht gewöhnungsbedürftig für mich.

    Danke schonmal für die Hilfe.

    Gruß
    Daniel

  • #2
    Versuchs doch einfach so:
    Code:
    SELECT Zeile1, 150 AS Zeile2
    FROM Tabelle
    UNION ...
    Den Alias "Zeile 2" brauchst du eigentlich nur beim ersten SELECT; dessen Feldnamen werden für die gesamte UNION-Konstruktion übernommen.

    Variable brauchst du in dieser Situation überhaupt nicht. Die kommen nur dann zum Tragen, wenn sie noch anderswo benötigt werden; dann müssen sie aber alle außerhalb der UNION-Konstruktion definiert und zugewiesen werden.

    Siehe auch den SQL-Standard für UNION unter Wikibooks: Einführung in SQL.

    Gruß Jürgen

    Comment


    • #3
      Ach Mensch ich bin doch ein blöder Depp.

      Ich hatte wie Du versucht, so ein Feld zu erzeugen, bekam aber immer eine Fehlermeldung "invalid column name". Wenn ich ein bisschen Hirn gehabt hätte, hätte ich rausgefunden, dass der Fehler wo anders her kommt.

      Danke für den Stoß in die richtige Richtung. Auf die Variablen kann ich in meinem Beispiel wirklich verzichten.

      Comment

      Working...
      X