Announcement

Collapse
No announcement yet.

Variable in GROUP BY Klausel verwenden

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

  • Variable in GROUP BY Klausel verwenden

    Hallo SQL-Experten.

    Soeben habe ich mit SQL Begonnen und arbeite mit SQL Express 2005. Ich habe eine Prozedur schreiben wollen, die folgende Fehlermeldung zurückgibt:

    "Meldung 164, Ebene 15, Status 1, Prozedur CrossTable, Zeile 9
    Jeder GROUP BY-Ausdruck muss mindestens eine Spalte enthalten, die kein äußerer Verweis ist."

    Die Prozedur sind folgendermassen aus:

    CREATE PROCEDURE CrossTable

    @Variable1 smallint,
    @Variable2 smallint,
    @Value smallint

    AS
    BEGIN
    SELECT @Variable1, COUNT(@Variable1) AS 'Haufigkeiten'
    FROM SurveyData
    WHERE @Variable2 = @Value
    GROUP BY @Variable1

    END
    GO


    Ziel dieser Prozedur ist es für eine bestimmte Variable (d.h. Spalte) eine Häufigkeitsverteilung zu generieren mit einer Selektion von einer zweiten Variable

    "Das Problem liegt an der Zeile "GROUP BY @Variable1" Ich kann scheinbar keine Variable in die GROUP BY Klausel aufnehmen. Gibt es diesbezüglich ein Workaround? oder kann mir jemand sagen wie ich das gleiche Query irgendwie anderst programmiert werden kann damit es den gleichen zweck erfüllt?

    Vielen Dank für eure Hilfe!

    Christian

  • #2
    Hallo,

    die SELECT-Anweisung muss als Zeichenkette zusammengebaut und danach über EXEC sp_executesql ausgeführt werden (dynamisches SQL). In diesem Fall steht der Parameterwert zur Ausführungszeit fest, so dass der SQL Server kein Veto mehr einlegt.

    Comment

    Working...
    X