AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi SQL- Summe je Zeile bilden - kummuliert

SQL- Summe je Zeile bilden - kummuliert

Ein Thema von MarcRB75 · begonnen am 22. Jun 2019 · letzter Beitrag vom 25. Jun 2019
Antwort Antwort
Seite 2 von 2     12
MarcRB75

Registriert seit: 31. Mai 2018
Ort: Hof/Saale
23 Beiträge
 
Delphi XE2 Starter
 
#11

AW: SQL- Summe je Zeile bilden - kummuliert

  Alt 23. Jun 2019, 11:05
Danke jobo für Deine Nachricht,

ich habe, wenn ich ehrlich bin, vor Jahren mal mit SQL beschäftigt. Und das selektieren von Tabellen haben auch
immer gut geklappt.

Mit Sicherheit macht man das meist so, dass man zur Laufzeit diese Summen je Zeile erzeugt, so dass man immer die
aktuellen Zahlen hat.
Aber ich wollte halt (oder halt versuchen) diese Werte fest in der Tabelle zu integrieren, so dass diese immer zur Verfügung stehen und ich diese ggf. bei weiteren Berechnungen verwenden kann.
Denn ich muss ja sonst immer mir zur Laufzeit erst die Summen bilden um diese weiterverwenden zu können. Das wollte ich halt nicht.

Das mit dem Insert und dem "merken" des vorherigen Datensatzes und diese Summe den neuen DS direkt in die Datenbank hinzufügen/hineinschreiben weiß ich leider nicht und habe schon viel versucht und getestet.

Was ich habe, sind Tageswerte. Und wenn sich diese Tageswerte ändern, soll alles geändert und die nachfolgenden DS angepasst werden. (Vergleichbar mit einem Kassenbuch).

Ich habe das mit der klassischen "Methode" versucht, die Tabelle durchläuft alle Zeilen, aber das dauert einfach zu lange, weil man während der Laufzeit neue Eingaben macht oder machen kann.
Bis man also ggf. eine neue Eingabe machen kann durchläuft er diese Anpassung.
Deshalb kam ich eben darauf, dass man diese Dauer durch ein Select/Insert "beschleunigen" könnte.
Marc
  Mit Zitat antworten Zitat
Rainbow6

Registriert seit: 21. Mai 2019
19 Beiträge
 
#12

AW: SQL- Summe je Zeile bilden - kummuliert

  Alt 23. Jun 2019, 12:18
Danke für Deine Antwort. Ich habe es versucht und hat auch geklappt. Nur zeigt er mir leider den Wert an und schreibt ihn nicht in die DB hinein.
Aber wenn du ihn rein schreibst, musst du das bei jedem update der daten wieder laufen lassen - das ist dir klar?
Code:
UPDATE table AS t1
  SET t1.col4 = (SELECT ... s.o.)
Aber du kannst dir dafür auch einen View bauen, der ist dann bei jeder Abfrage des Views immer aktuell.

Oder du setzt den UPDATE in einen DB-Trigger - aber ich würde Trigger immer so weit wie möglich vermeiden.

Letzte Möglichkeit ist ein „berechnetes Feld“ in der Tabelle und als Feld-Funktion eben den SELECT in der Klammer - Aber ... das unterstützen nicht alle DBEs - MS-SQL kann das glaub ich, andere aber nicht, die unterstützen da nur relativ einfache skalare Ausdrücke.

Grüße
Daniel
  Mit Zitat antworten Zitat
MarcRB75

Registriert seit: 31. Mai 2018
Ort: Hof/Saale
23 Beiträge
 
Delphi XE2 Starter
 
#13

AW: SQL- Summe je Zeile bilden - kummuliert

  Alt 23. Jun 2019, 12:36
Danke auch Dir.
Nun, ich habe mich in der Tat für das berechnende Feld entschieden.
Das ist, so denke ich auch eine schöne und saubere Lösung.

Danke nochmal an alle, die mir versucht haben, diesbezüglich zu helfen.

Marc
Marc
  Mit Zitat antworten Zitat
Benutzerbild von joachimd
joachimd

Registriert seit: 17. Feb 2005
Ort: Weitingen
631 Beiträge
 
Delphi 10.4 Sydney
 
#14

AW: SQL- Summe je Zeile bilden - kummuliert

  Alt 25. Jun 2019, 00:42
Code:
select
  spalte1,
  ifnull(spalte2, spalte1) as spalte2,
  ifnull(spalte3, spalte1+spalte2) as spalte3,
  ifnull(spalte4, spalte1+spalte2+spalte3) as spalte4
from mytable
Joachim Dürr
Joachim Dürr Softwareengineering
http://www.jd-engineering.de
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.658 Beiträge
 
Delphi 7 Personal
 
#15

AW: SQL- Summe je Zeile bilden - kummuliert

  Alt 25. Jun 2019, 10:49
Ich glaube, da hast Du dich vertan
Zitat:
(kein Eintrag ... wert von vorheriger Zeile übernehmen)
Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
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 +2. Es ist jetzt 03:10 Uhr.
Powered by vBulletin® Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf