AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi SUM() über mehrere Tabellen
Thema durchsuchen
Ansicht
Themen-Optionen

SUM() über mehrere Tabellen

Ein Thema von scrat1979 · begonnen am 13. Jun 2007 · letzter Beitrag vom 14. Jun 2007
Antwort Antwort
Seite 1 von 3  1 23      
Benutzerbild von scrat1979
scrat1979

Registriert seit: 12. Jan 2007
Ort: Sulzbach a.d. Murr
1.028 Beiträge
 
Delphi 10.4 Sydney
 
#1

SUM() über mehrere Tabellen

  Alt 13. Jun 2007, 17:55
Datenbank: Absolute Database • Version: 5.13 • Zugriff über: Komponenten
Hallo zusammen,

... und schon wieder habe ich zu meiner (einfachen) Frage keine Lösung. Helft mir bitte auf die sprünge

Ich möchte ganz einfach alle Datensatz von meheren Tabellen zusammenzählen. Sämtliche Versuche meinerseits mittels sum() und count() sind leider fehlgeschlagen

SCRaT
Michael Kübler
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.195 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: SUM() über mehrere Tabellen

  Alt 13. Jun 2007, 18:06
Und was spricht dagegen das Clientseitig durchzuführen?
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#3

Re: SUM() über mehrere Tabellen

  Alt 13. Jun 2007, 18:47
SQL-Code:
SELECT SUM(anzahl) AS AnzahlTotal FROM
(
SELECT SUM(Feld1) AS Anzahl FROM Tabelle1
UNION ALL
SELECT SUM(Feld2) AS Anzahl FROM Tabelle2
)
Wenn die Tabellen 1 und 2 die gleiche Struktur haben, dann ist dein Datenbankdesign fehlerhaft.
Andreas
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: SUM() über mehrere Tabellen

  Alt 13. Jun 2007, 19:58
Wie sehen die Tabellen bzw das gewünschte Ergebnis aus?
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von scrat1979
scrat1979

Registriert seit: 12. Jan 2007
Ort: Sulzbach a.d. Murr
1.028 Beiträge
 
Delphi 10.4 Sydney
 
#5

Re: SUM() über mehrere Tabellen

  Alt 13. Jun 2007, 22:06
Hallo und vielen Dank für die Vorschläge!

Zitat von Bernhard Geyer:
Und was spricht dagegen das Clientseitig durchzuführen?
Mein Ehrgeiz und mein Interesse mich in SQL einzuarbeiten. Aber prinzipiell gebe ich Dir natürlich
Recht - so hatte ich es bisher auch gelöst

Zitat von shmia:
SQL-Code:
SELECT SUM(anzahl) AS AnzahlTotal FROM
(
SELECT SUM(Feld1) AS Anzahl FROM Tabelle1
UNION ALL
SELECT SUM(Feld2) AS Anzahl FROM Tabelle2
)
Wenn die Tabellen 1 und 2 die gleiche Struktur haben, dann ist dein Datenbankdesign fehlerhaft.
Danke, funktioniert einwandfrei. Natürlich handelt es sich um verschiedene Tabellenstrukturen (Hatte ich irgendwo erwähnt, das die Tabellen dieselbe Struktur haben?!?!) Genauer gesagt ist es eine Fotodokumentationssoftware für eine Arztpraxis. Mittels Export-Funktion sollen die markierten Datensätze in eine neue Datei (=Datenbankdatei) geschrieben werden. Die jeweils markierten Datensätze der verschiedenen Tabellen (Patienten, Diagnosen, Bilder) möchte ich für eine Fortschrittsanzeige zusammenzählen, weiter nichts

Nochmals Dickes

Man liest sich,

SCRaT
Michael Kübler
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.195 Beiträge
 
Delphi 10.4 Sydney
 
#6

Re: SUM() über mehrere Tabellen

  Alt 13. Jun 2007, 22:23
Zitat von scrat1979:
Mein Ehrgeiz und mein Interesse mich in SQL einzuarbeiten. Aber prinzipiell gebe ich Dir natürlich
Recht - so hatte ich es bisher auch gelöst
Interesse schön und gut. Aber dieses einfache Select stellt eine nicht unerhebliche Belastung für einen SQL-Server dar, da er mindestens den kompletten Primärindex durchlaufen muss. Auch wenn du sagst: Sowas müßte doch ganz einfach sein: Nicht für transaktionsfähige Datenbanken wenn die Tabellen Eintrage beinhalten welche schon langsam an die Mio.-Grenze reichen. Da kann ein solche "einfaches" schon mal für eine Tabelle ein Minute brauchen. Und ob ADS hier zaubern kann?
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: SUM() über mehrere Tabellen

  Alt 13. Jun 2007, 22:27
Wenn die tabellen in der Struktur auch nicht komplett übereinstimmen, sondern nur zum teil könnte man versuchen Gleiches zusammenzufassen.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von scrat1979
scrat1979

Registriert seit: 12. Jan 2007
Ort: Sulzbach a.d. Murr
1.028 Beiträge
 
Delphi 10.4 Sydney
 
#8

Re: SUM() über mehrere Tabellen

  Alt 13. Jun 2007, 22:57
Zitat von Bernhard Geyer:
Zitat von scrat1979:
Mein Ehrgeiz und mein Interesse mich in SQL einzuarbeiten. Aber prinzipiell gebe ich Dir natürlich
Recht - so hatte ich es bisher auch gelöst
Interesse schön und gut. Aber dieses einfache Select stellt eine nicht unerhebliche Belastung für einen SQL-Server dar, da er mindestens den kompletten Primärindex durchlaufen muss. Auch wenn du sagst: Sowas müßte doch ganz einfach sein: Nicht für transaktionsfähige Datenbanken wenn die Tabellen Eintrage beinhalten welche schon langsam an die Mio.-Grenze reichen. Da kann ein solche "einfaches" schon mal für eine Tabelle ein Minute brauchen. Und ob ADS hier zaubern kann?
Auch wenn meine Datenbank diese Dimension niemals erreichen wird ist es ein nachvollziehbarer Einwand. Ich werde mal einige 10.000 Dummy-Einträge machen und dann nach der besten Lösung suchen. Eventuell könnte ich auch bei der DB-Komponente selbst den Filter (Feld Export = True) setzen. Ich glaube dann werden die Datensätze ohne erneute Abfrage gefiltert und das müsste dann wohl schneller gehen. Danke für den Tip, werde es wohl dann doch Clientseitig lösen. Aber immerhin habe ich wieder was dazugelernt


Zitat von mkinzler:
Wenn die tabellen in der Struktur auch nicht komplett übereinstimmen, sondern nur zum teil könnte man versuchen Gleiches zusammenzufassen.
Nein, Nein. Die beiden Tabellen haben komplett verschiedene Strukturen. Es werden hier keine Daten redundant gespeichert. Es ging lediglich um die ANZAHL der Datensätze aller 3 (unterschiedlich strukturierten!) Tabellen zusammen - oder habe ich Dich mißverstanden

Grüsse,
SCRaT
Michael Kübler
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: SUM() über mehrere Tabellen

  Alt 13. Jun 2007, 23:09
Es ging mir nicht umd die Redundanz, sondern die ähnliche Struktur

z.B.

Tabelle1
A, B, C

Tabelle2
B, C, D

Tabelle3
C, D, E

->

Tabelle
A, B, C, D, E

oder

Tabelle1
A, B, C, D

Tabelle2
A, B, C, E

Tabelle3
A, B, C, F

->

Tabelle
A, B, C

Tabelle1
TID, D

Tabelle2
TID, E

Tabelle3
TID, F
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#10

Re: SUM() über mehrere Tabellen

  Alt 13. Jun 2007, 23:14
...Also jede DB sollte eine einigermaßen performante Funktion haben, um die Anzahl der Datensätze in einer Tabelle zu ermitteln, bzw. die Anzahl ständig mitkeschen...

@mkinzler: Er hat eine Tabelle Äpfel, eine Tabelle Birnen, und eine mit Gemüse. Er will nur wissen wie viel Obst und Gemüse er hat.
Er will nicht erst Äpfel und Birnen mit dem Gemüse in einen Eimer schmeißen und dann zählen.
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 08:09 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz