Announcement

Collapse
No announcement yet.

Unterschiedliche Abfragen gesammelt in einem Ergebnis darstellen

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

  • Unterschiedliche Abfragen gesammelt in einem Ergebnis darstellen

    SQL Server 2008 R2 Express

    Hallo,

    ich habe diverse kleine Abfragen in vielen Selects geschrieben. Wenn ich die Abfragen ausführe, erscheint jedes Ergebnis logischerweise untereinander in einem eigenen Fenster.

    Beispiel:
    SELECT COUNT(*) AS Note2 FROM dbo.Noten WHERE Note = '2'
    SELECT COUNT(*) AS Note3 FROM dbo.Noten WHERE Note = '3'

    Wie ist es möglich, sich das Ergebnis in einem Fenster anzeigen zu lassen, damit die Spalten "Note2" und "Note3" nebeneinander erscheinen?

    Viele Grüße ... und frohes Neues

  • #2
    [Highlight=SQL]SELECT
    (SELECT COUNT(*) FROM dbo.Noten WHERE Note = '2') AS Note2,
    (SELECT COUNT(*) FROM dbo.Noten WHERE Note = '3') AS Note3
    [/Highlight]
    Zuletzt editiert von Ralf Jansen; 02.01.2012, 15:36.

    Comment


    • #3
      Vielen Dank für deine Antwort. Leider klappt das bei mir nicht, die Syntax scheint falsch zu sein. Das Managementstudium bemängelt das "AS" bei "Note 2" sowie die letzte Klammer.

      Ich habe gerade hin und her probiert, bin aber auf keine Lösung gekommen ;-(

      Comment


      • #4
        Ich hätte es auch ausprobieren sollen

        Die Rückgabewerte in der Selectliste darf man nicht klammern. Im Beitrag korrigiert.

        Comment


        • #5
          Originally posted by Laie View Post
          Vielen Dank für deine Antwort. Leider klappt das bei mir nicht, die Syntax scheint falsch zu sein. Das Managementstudium bemängelt das "AS" bei "Note 2" sowie die letzte Klammer.

          Ich habe gerade hin und her probiert, bin aber auf keine Lösung gekommen ;-(
          Bei mir geht Ralpfs Lösung...
          wenn mans komplizierter haben möchte:
          [HIGHLIGHT="SQL"]WITH Noten (Note) AS
          ( SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 4 UNION ALL SELECT 2 )

          SELECT MAX (CASE WHEN Note = 1 THEN Anzahl ELSE 0 END) AS Note1
          , MAX (CASE WHEN Note = 2 THEN Anzahl ELSE 0 END) AS Note2
          , MAX (CASE WHEN Note = 3 THEN Anzahl ELSE 0 END) AS Note3
          , MAX (CASE WHEN Note = 4 THEN Anzahl ELSE 0 END) AS Note4
          FROM (
          SELECT Note
          , COUNT (*) AS Anzahl
          FROM Noten
          GROUP BY Note
          ) AS X[/HIGHLIGHT]
          wobei das WITH nur für die temporäre tabelle "Noten" sorgt...

          Comment


          • #6
            Bei mir geht Ralpfs Lösung...
            Ich hatte den Beitrag auch nachträglich editiert

            Comment

            Working...
            X