AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

[SQL] Zwischensummen

Ein Thema von BlueStarHH · begonnen am 3. Apr 2022 · letzter Beitrag vom 5. Apr 2022
Antwort Antwort
Benutzerbild von IBExpert
IBExpert

Registriert seit: 15. Mär 2005
699 Beiträge
 
FreePascal / Lazarus
 
#1

AW: [SQL] Zwischensummen

  Alt 3. Apr 2022, 16:58
ich würde das in etwa so machen

-erzeugen eine sp, die deine positionen zurückliefert mit suspend so wie du die brauchst
-die relevanten datensätze per for select in die return variablen packen und nach jedem record ein suspend
(for select ..... into ..... do begin ...... suspend; ..... end vereinfacht
-ein mal am anfang deine zwischensummen variablen mit 0 belegen
-wenn nach deiner Logik eine Zwischensumme kommen sollte, dann einfach das was gerade in der Zwischensumme zusammengerechnet wurde, in die passende Return Spalte eintrage, den rest ggf leeren und dann aufgrund deiner bedingung damit noch einen extra suspend mit den dann neuen variablen machen und bei bedarf die zwischensumme wieder auf 0 setzen
-die komplette spkannst du dann mit select * from spname (:ggf_Variablen_eingeben) von jedem Client aus aufrufen , also im report design, im grid oder wo auch immer
-wenn das editierbar bleiben soll, machst du noch einen updatable view oben auf die sp drauf

wenn du das alles im client machen willst, dann viel erfolg, datenbankseitig ist das mit firebird bordmitteln simpel zu machen, noch komplexer sogar wenn man dazu gtt global temporary tables benutzt. Mit einem sql ginge das ähnlich wie in der sp mit execute block, aber es ist nicht damit getan, hier und dann mal eben sum und group by befehle einzubauen.

Hilft dir zwar nicht wirklich weiter (es sei denn du bist bei IBExpert Hotline kunde), aber ich geh davon aus, das man für das lauffähige Grundgerüst der Anforderung maximal 10-20 Minuten braucht und so was machen wir im Rahmen der Hotline für Kunden regelmßig. Ist halt eine Frage was einem (oder dem Arbeitgeber) die eigene Arbeitszeit wert ist, so was stunden- oder tagelang auszutüfteln, ohne irgendwelche Fortschritte zu machen.
Holger Klemt
www.ibexpert.com - IBExpert GmbH
Oldenburger Str 233 - 26203 Wardenburg - Germany
Firebird 5 Update und Know-how Workshop – 28.8.-29.08.2025 64546 Mörfelden - Walldorf
  Mit Zitat antworten Zitat
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.740 Beiträge
 
Delphi 6 Enterprise
 
#2

AW: [SQL] Zwischensummen

  Alt 4. Apr 2022, 08:52
Nur mal aus Neugier. Woran erkennt man bei "Aufgabe 1" das nach 1&2 und nach 3&4 jeweils eine Zwischensumme gewünscht ist? Bei "Aufgabe 2" könnte man es ja am Artikeltyp erkennen.
Ralph
  Mit Zitat antworten Zitat
Benutzerbild von MyRealName
MyRealName

Registriert seit: 19. Okt 2003
Ort: Heilbronn
700 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: [SQL] Zwischensummen

  Alt 4. Apr 2022, 09:13
Das cxGrid an sich ist schon fähig, diese Zwischensummen zu bilden, aber Du musst eine Gruppierung für die Zwischensummen bilden für das Grid. Das baust Du dann GroupLevels und die kriegen einen Footer wo Du die Summen reinschreibst.
  Mit Zitat antworten Zitat
BlueStarHH

Registriert seit: 28. Mär 2005
Ort: Hamburg
871 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: [SQL] Zwischensummen

  Alt 5. Apr 2022, 10:50
Das cxGrid an sich ist schon fähig, diese Zwischensummen zu bilden, aber Du musst eine Gruppierung für die Zwischensummen bilden für das Grid. Das baust Du dann GroupLevels und die kriegen einen Footer wo Du die Summen reinschreibst.
Da wäre dann nur das Problem, dass ich die Summen nicht im Report hätte. Also wohl doch alles in der DB berechnen...
  Mit Zitat antworten Zitat
Benutzerbild von MyRealName
MyRealName

Registriert seit: 19. Okt 2003
Ort: Heilbronn
700 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: [SQL] Zwischensummen

  Alt 5. Apr 2022, 10:56
Das cxGrid an sich ist schon fähig, diese Zwischensummen zu bilden, aber Du musst eine Gruppierung für die Zwischensummen bilden für das Grid. Das baust Du dann GroupLevels und die kriegen einen Footer wo Du die Summen reinschreibst.
Da wäre dann nur das Problem, dass ich die Summen nicht im Report hätte. Also wohl doch alles in der DB berechnen...
DevExpress hat ein Reportsystem, wo Du das Grid über den ComponentPrinter ausdruckst, das druckt die Zwischensummen mit.
In FastReport kannst Du diese Zwischensummen auch bilden und so ausdrucken
  Mit Zitat antworten Zitat
BlueStarHH

Registriert seit: 28. Mär 2005
Ort: Hamburg
871 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: [SQL] Zwischensummen

  Alt 5. Apr 2022, 10:49
Nur mal aus Neugier. Woran erkennt man bei "Aufgabe 1" das nach 1&2 und nach 3&4 jeweils eine Zwischensumme gewünscht ist? Bei "Aufgabe 2" könnte man es ja am Artikeltyp erkennen.
Es gibt dann einen Datensatz mit dem Artikeltyp "Zwischesumme". Dieser wird vom Anwender dort eingefügt, wo er die Zwischensumme haben möchte. Datensätze vom Typ "Zwischesumme" gehen dann *nicht* in die Gesamtsumme ein:

Code:
Select sum(Preis) from RechnungsPositionen where Artikeltyp = 'Artikel' or Artikeltyp ='KommisionsSumme'
  Mit Zitat antworten Zitat
BlueStarHH

Registriert seit: 28. Mär 2005
Ort: Hamburg
871 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: [SQL] Zwischensummen

  Alt 5. Apr 2022, 10:53
ich würde das in etwa so machen... [alles in der DB]
Danke Holger, das hört sich gut aber auch aufwendig an, wenn man das noch nicht so gemacht hat. Ich komme auf Deine Hotline zurück. Ich bin mir bloss noch nocht sicher, wie man das Grid ohne Seiteneffkete synchron bekommt, wenn die DB-Tabelle durch trigger an meheren Stellen geändert wird. Wenn ich gerade was im Grid bearbeite, soll der Cursor ja nicht wegspringen und solche Sachen.
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:20 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz