Information ausblenden
Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm

Summenzeile am Ende einer Abfrage

Dieses Thema im Forum "Microsoft SQL Server" wurde erstellt von FrighNaar, 13 Februar 2014.

  1. FrighNaar

    FrighNaar Neuer Benutzer

    Hallo,
    ich brauche Hilfe bei einem SQL-Konstrukt. Mein Problem ist folgendes:
    Ich habe ein Programm, dass als Blackbox anzusehen ist (ich kann den Quellcode leider nicht einsehen), dass ein SQL-Querry aus einer Textdatei einliest und ein Excel-Dokument ausgibt, dass das Ergebnis der Querry in entsprechenden Zeilen und Spalten enthält.
    Ich muss am Ende der Abfrage eine Summenzeile haben. Die Felder, nach der das ORDER BY - Statement sortieren soll, sind leider nicht in der Summenzeile enthalten. Ich muss aber sicher stellen, dass die Zeile am Ende ist.
    Meine Abfrage sieht schematisch so aus:

    SELECT a,b,c, PreisEK, PreisVK
    FROM (Tabellen zusammengejoint)
    WHERE x,y,z

    UNION

    SELECT NULL,NULL,NULL,SUM(PreisEK),SUM(PreisVK)
    FROM (Tabellen zusammengejoint)
    WHERE x,y,z

    ORDER BY a <- Funktioniert natürlich nicht, da a im zweiten Teil nicht vorkommt

    Ohne ORDER BY kann ich mir aber nicht sicher sein, dass die Summenzeile am Ende steht. In der Regel steht die Summenzeile an erster Stelle.

    Hat jemand eine Idee, wie ich das hinbekommen kann?

    Schon mal vielen Dank für Vorschläge
     
  2. Hony%

    Hony% Datenbank-Guru

    Auf die Schnelle so:
    Code:
    SELECT a,b,c, PreisEK, PreisVK
    FROM (
    SELECT a AS sortID, a,b,c, PreisEK, PreisVK
    FROM (Tabellen zusammengejoint)
    WHERE x,y,z
    
    UNION
    
    SELECT 999999999 AS sortID, NULL,NULL,NULL,SUM(PreisEK),SUM(PreisVK)
    FROM (Tabellen zusammengejoint)
    WHERE x,y,z
    ) AS T
    ORDER BY sortID
    
    Edit: Als letzte Pseudo ID ist jeder Wert geeignet der garantiert größer als die Anderen ist. Wenn a immer eine Zahl ist reicht ggf, schon 'A'.

    Edit2: SUM(a) AS sortID sollte auch noch funktionieren.
     
    Zuletzt bearbeitet: 13 Februar 2014
  3. akretschmer

    akretschmer Datenbank-Guru

    Hast ja schon Antwort von @Hony% , andere Idee: M$SQL kennt/versteht wohl auch WITH ROLLUP - Syntax, das wäre u.U. deutlich eleganter.
     
  4. FrighNaar

    FrighNaar Neuer Benutzer

    Danke für die schnelle Hilfe. Ich habe erstmal die Methode von Hony% probiert, werde mir aber auch nochmal WITH ROLLUP nochmal ansehen
     
Die Seite wird geladen...

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden