Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi SUM aus zwei Tablellen (https://www.delphipraxis.net/184814-sum-aus-zwei-tablellen.html)

Captnemo 23. Apr 2015 11:06

Datenbank: MySQL • Version: 5.1 • Zugriff über: SQLDirect

SUM aus zwei Tablellen
 
Hi,

ich brauch von euch mal fix ein kleine Hilfe.

Ich muss eine Summenbildung nebst Sortierung über 2 Tabellen abfragen.

Beiden Tabellen enthalten Teilweise gleiche Felder, und auch nur die sollen abgefragt werden.

Beispiel:
Code:
Tabelle1:
  Felder: Name
          Vorname
          Netto
          Lieferscheinnummer
          Rechnungsnummer

Tabelle 2:
  Felder: Firma
          Kundennummer
          Name
          Vorname
          Kosten
          Lieferkosten
          Dauer
Wie gesagt, nur ein Beispiel. Ich will jetzt beide Tabelle in einer Abfrage zusammenfassen und
Code:
SUM(Netto / Kosten)
(Also von der Tabelle1 das Feld Netto und von der Tabelle2 das Feld Kosten) mittels
Code:
Group by Name, Vorname
und ein
Code:
Order by Name, Vorname
fertig aufbereitete Daten erhalten. Die anderen Felder der beiden Tabellen werden nicht benötigt, und brauchen auch nicht berücksichtigt werden.

Ich denke schon, dass das geht. Nur weiß ich nicht wie.

Und leider habe ich nur bis 13:00 Uhr zeit, da der Kunde die Daten bis dahin benötigt.

Kann mir jemand ein kleines Beispiel dafür nennen?

DeddyH 23. Apr 2015 11:08

AW: SUM aus zwei Tablellen
 
Aus der Hüfte: eine UNION beider Tabellen als Subselect bilden und davon dann die Summe errechnen.

Captnemo 23. Apr 2015 11:11

AW: SUM aus zwei Tablellen
 
Zitat:

Zitat von DeddyH (Beitrag 1298907)
Aus der Hüfte: eine UNION beider Tabellen als Subselect bilden und davon dann die Summe errechnen.

Mir ist noch aufgefallen, dass die Felder, die die Summe bilden sollen, in beiden Tabellen leider nicht gleich heißen. Geht das trotzdem?

mkinzler 23. Apr 2015 11:14

AW: SUM aus zwei Tablellen
 
Du musst nur dafür sorgen, dass sie gleich heissen ( Alias)

Captnemo 23. Apr 2015 11:20

AW: SUM aus zwei Tablellen
 
Wenn ich das z.B. so mache:
Code:
SELECT Datum, lieferant, lieferantname, Netto as Gewicht, Artikelname as Artikel FROM gm.mobilwiegedaten
where year(datum)=2015 and month(Datum)=3 
union all
Select Datum, lieferant, lieferantname, gewicht, artikel from gm.wiegungen
where year(datum)=2015 and month(Datum)=3 
order by lieferant;
Dann kriege ich nur die Zeilen des zweiten Select's. (Feldnamen sind jetzt andere, als oben).

mkinzler 23. Apr 2015 11:27

AW: SUM aus zwei Tablellen
 
Sind die Typen gleich?

Entferne mal das Union und führe nur den ersten Teil der Abfrage ( mit Aliasen) aus. liefert der das gewünschte (Teil-)Ergebnis?

Captnemo 23. Apr 2015 11:38

AW: SUM aus zwei Tablellen
 
Alles klar. Funktioniert. Vielen Dank.

Captnemo 23. Apr 2015 11:41

AW: SUM aus zwei Tablellen
 
Aber wie könnte ich jetzt in der Ergebnistabelle die Summenbildung machen? Wenn ich's in den einzelnen Select's mache, nützt es mir ja nichts.

mkinzler 23. Apr 2015 11:43

AW: SUM aus zwei Tablellen
 
Mit einer derived Table

Zitat:

Zitat von SQL
select ... from ( <Union>);


hstreicher 23. Apr 2015 11:49

AW: SUM aus zwei Tablellen
 
sum(netto/kosten) ergibt für mich keinen Sinn

das sollte wohl sum(netto)/sum(kosten) heissen
und dann einfach

select t3.Name,t3.Vorname,(select sum(t1.netto) from tabelle1 as t1 where ??)/(select sum(t2.kosten) from tabelle2 as t2 where ??)) from Tabelle1 as t3 Group by 1,2 order by 1,2

die ?? müssen angepasst werden , z.b where t1.vorname=t3.vorname and t1.name=t3.name je nach Tabellenstruktur


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:54 Uhr.
Seite 1 von 2  1 2      

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