Summen und Zwischensummen in SQL-Abfragen

Hallo Leute,

könnt ihr mir als SQL-Neuling bitte mitteilen, mit welchem Code ich bei SQL-Abfragen Summen oder sogar Zwischensummen bilden kann?

Das Ergebnis sollte dann so aussehen:

(Semikolon trennt die Spalten)

Kalenderwoche; Menge; Euro;Typ
32; 1 ; 222,22;1
32; 5 ; 111,11;2

32; 6; 333,33;- --> Zwischensummen

33; 2; 500,00;1
33; 6; 120,00;4
33; 1; 80;00;2

33; 9; 700,00;- --> Zwischensummen

-;15;1033,33;- Gesamtsumme

\

  1. Könnt ihr mir sagen wie das mit den Summen bzw. Zwischensummen für diese Tabelle gemacht werden kann?

  2. Die Kalenderwochen sind in der Datenbank als Datum hinterlegt (Z.B. 01.12.2007). Könnt ihr mir sagen, wie ich diese als Kalenderwoche formatiert ausgebe und entsprechend danach sortiere?

  3. Diese Summen und sortierung möchte ich auch einmal sortiert nach dem “Typ” haben. Wäre euch dankbar für eine Hilfe.


    Vielen Dank im Voraus für jede HIlfe.


    Gruß

Jupp

Könnt ihr mir sagen

PG kann (noch) keine gleitenden Summen etc., das kommt evtl. in 8.4 oder später. Bis dahin kann man das entweder in der Anwendung abbilden oder mittels einer Sprache wie plpgsql auch durch die Datenbank selbst ausgeben lassen. Hab jetzt allerdings keine Zeit für ein Minimalbeispiel, allerdings haben ads und ich mal etwas ähnliches zu einem Workshop in Chemnitz gezeigt, Google kennt die URL.


  1. Die Kalenderwochen sind in der Datenbank als Datum hinterlegt (Z.B. 01.12.2007). Könnt ihr mir sagen, wie ich diese als Kalenderwoche formatiert ausgebe und entsprechend danach sortiere?

Extract() kann das, PostgreSQL: Documentation: Manuals: PostgreSQL 8.3: Date/Time Functions and Operators



  1. Diese Summen und sortierung möchte ich auch einmal sortiert nach dem “Typ” haben. Wäre euch dankbar für eine Hilfe.

order by?


Andreas

Hallo,

vielen Dank für deine Antwort.
Diese SQL-Befehle gebe ich in einer Software ein, deren Datenbank auf dem SQL Express Server 2005 stehen. Ich hoffe, dass hilft etwas weiter.

Geht das da etwa auch nicht mit den Summen, wie ich sie vorhabe?

Wegen der Datumsformatierung: Ich habe mir deinen Link mal angesehen, aber nicht richtig verstanden. Die Spalte heißt Datum.
Kannst du mir bei der Syntax helfen, wenn ich es als Kalenderwoche darstellen möchte?

Lieben Dank für die Bemühungen.


Freundliche Grüße

Jupp

Mir nicht. Hier geht es um PostgreSQL.

Geht das da etwa auch nicht mit den Summen, wie ich sie vorhabe?

Das steht doch sicher im Handbuch, oder?

Wegen der Datumsformatierung: Ich habe mir deinen Link mal angesehen, aber nicht richtig verstanden. Die Spalte heißt Datum.
Kannst du mir bei der Syntax helfen, wenn ich es als Kalenderwoche darstellen möchte?

test=*# select datum, extract(week from datum) from (select current_date as datum)foo;
datum | date_part
------------±----------
2008-06-27 | 26
(1 Zeile)

>
> Andreas
>

Hallo,

danke für die Hilfe:


habe momentan folgenden Codegewülst:


select grouping(Datum),grouping(Belegnummer), Datum, Belegnummer, sum(Brutto) Gesamtsumme
from BELEG
where Belegtyp=‘R’
GROUP BY Datum, Belegnummer WITH ROLLUP;

Der macht mir hier dann schon für jeden Tag summen. Könnt ihr mir helfen, die Summe je Kalenderwoche darzustellen? Wie stellt man denn eigentlich Kalenderwochen in SQL dar?


Lieben Dank für die Hilfen

Jupp

WINDOW-Funktionen wie diese stehen auf meiner Wunschliste an PG…

Der macht mir hier dann schon für jeden Tag summen.

Logisch. Du forderst dies ja auch so.

Könnt ihr mir helfen, die Summe je Kalenderwoche darzustellen? Wie stellt man denn eigentlich Kalenderwochen in SQL dar?

Ich habe Dir schon gezeigt, wie dies mit PG geht. Schau nun in das Handbuch Deines Systems, wie das dort geht. Da gibt es sicher was passendes. Der Weg ist einfach, aus einem Datum die KW zu berechnen. Danach gruppierst Du dann.


Andreas

Hi Andreas,

lieben dank dass du mir dennoch hilfst.
Der erkennt bei mir leider nicht diesen extract befehl.

Darf ich dennoch im allgemeinen Fragen, wo ich mir am besten die für mich sinnvollen SQL-Kenntnisse aneignen kann?

Nun, jedes System hat halt seine eigenen Erweiterungen und Abweichungen vom reinen SQL-Standard.

Darf ich dennoch im allgemeinen Fragen, wo ich mir am besten die für mich sinnvollen SQL-Kenntnisse aneignen kann?

Google, Bücher, Doku zum System, …

Andreas

danke für die Hilfe :wink: