Autor Beitrag
Zemke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 83

WIN XP
Delphi 4 Professionell
BeitragVerfasst: So 10.11.02 19:28 
Hallo,

ich möchte gerne zu statistischen Zwecken Daten aus meiner Paradox-Datenbank auswerten. Bei dieser Auswertung sollen Summen gebildet werden können.

Konkret:
Ich habe Datumswerte (6 Felder) und Betragswerte (6 Felder) in meiner Datenbank. Die Datumsfelder habe ich wiederum in je 6 Felder nur Datum und nur Monat aufgesplittet (um einen besseren Zugriff auf Datumswerte zu bekommen - Vergleichswerte). Pro Datensatz können mehrere Datumswerte und Betragswerte gespeichert werden. Nun möchte ich eine Auswertung nach Monaten machen. Die Daten sollen nach Anzahl / Monat und Gesamtbetrag / Monat ausgewertet werden. Ich habe nun viele unterschiedliche Methoden ausprobiert, ich komme immer wieder zu unterschiedlichen Ergebnissen. z.B.
select count(monat)+count(monat2)+count(monat..), sum(betrag1)+sum(betrag2)+sum(betrag..) from datenbank.db where jahr='2002' and monat='1' union select count(monat)+count(monat2)+count(monat..), sum(betrag1)+sum(betrag2)+sum(betrag..) from datenbank.db where jahr='2002' and monat='2'
... bis Monat 12
Kann man diese Abfrage nicht irgendwie zusammenfassen und wie bekomme ich sie (dann mit variablen) in die SQL?


Meine Datenbank sieht in etwa so aus:

2002 1 15.01.2002 500,00
Jahr Monat | Datum Betrag Jahr Monat | Datum2 Betrag2
Jahr Monat | Datum3 Betrag3 Jahr Monat | Datum4 Betrag4
Jahr Monat | Datum5 Betrag5 Jahr Monat | Datum6 Betrag6

6 Eingabefelder pro Datensatz, in jedem Monat kann der Wert 1-12 auftauchen. Die Daten sollen aus dieser Tabelle zusammengefasst werden.



Ich hoffe ihr steigt da durch.

Ich wäre sehr froh, wenn mir jemand helfen könnte.

Gruß
Rainer Zemke
Steffer
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 299



BeitragVerfasst: So 10.11.02 22:29 
Was soll denn dabei rauskommen?

>select count(monat)+count(monat2)+count(monat..), sum(betrag1)+sum
>(betrag2)+sum(betrag..) from datenbank.db where jahr='2002' and
>monat='1' union select count(monat)+count(monat2)+count(monat..),
>sum(betrag1)+sum(betrag2)+sum(betrag..) from datenbank.db where
>jahr='2002' and monat='2'
>... bis Monat 12

Eine Summe der Beiträge, Anzahl der Beiträge?*g

Nee, du must die Anfragen nacheinander ausführen.
Also erst Count() dann Sum() usw.. du hast doch auch nur immer EINEN Wert als Ergebnis.
Wenn die DB dazuentsprechend indiziert ist, geht das ohne Probleme.

_________________
Keine Signatur ...
Zemke Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 83

WIN XP
Delphi 4 Professionell
BeitragVerfasst: Mo 11.11.02 10:25 
Titel: Ergebnis
Als Ergebnis möchte ich genaue Aufstellung über Anzahl der Rechnungen pro Monat mit dem Gesamtbetrag pro Monat:


Monat Menge Gesamtbetrag
Januar
Februar
März
Apil
Mai
Juni
Juli
August
September
Oktober
November
Dezember


"Du musst die Anfragen nacheinander ausführen" ?
nacheinander in einem Befehl oder für jeden Monat extra - wenn in einem Befehl, wie verbinde ich die Daten so, daß daraus Summen herauskommen?
LCS
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1305
Erhaltene Danke: 1

WIN 7, WIN 8
Delphi XE5, Delphi XE, Delphi 2007
BeitragVerfasst: Mo 11.11.02 13:17 
Hi
Zemke hat folgendes geschrieben:

2002 1 15.01.2002 500,00
Jahr Monat | Datum Betrag Jahr Monat | Datum2 Betrag2
Jahr Monat | Datum3 Betrag3 Jahr Monat | Datum4 Betrag4
Jahr Monat | Datum5 Betrag5 Jahr Monat | Datum6 Betrag6

Verstehe ich das richtig, dass du pro Datensatz 6 x die Felder Jahr, Monat, Datum und Betrag hast? :shock:
Wenn das so ist, wirst du das nie vernünftig hinbekommen. Zumindest nicht mit SQL. Leider hast du hier geben eine der Grundregeln beim DB-Design verstossen: Sich wiederholende Daten gehören in eine eigene Tabelle.
user defined image
Wenn du in jedem Satz nur eine Wertegruppe hättest, könntest du das einfach so machen:
ausblenden Quelltext
1:
select count(*), sum(betrag) from Datenbank where Jahr = 2002 group by Monat					

Dann würdest du 12 Datensätze für die Monate 1 bis 12 bekommen. Jeweils mit Anzahl und Gesamtsumme.

Gruss Lothar

_________________
Der BH ist für die Brust, der Plan ist für'n Ar...
Zemke Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 83

WIN XP
Delphi 4 Professionell
BeitragVerfasst: So 17.11.02 12:48 
Titel: Selektierung
Hallo,
vielen Dank für den Hinweis, es hat geklappt.

Gruß
Rainer Zemke