![]() |
Datenbank: Paradox • Version: 7 • Zugriff über: BDE
SQL AVG mit 2 Tabellen
Hallo
ich habe 2 Tabellen 1. Tabelle Rechnungen: NR Rech_Nr Kunden_Nr 2. Tabelle Positionen: NR Rech_Nr Pos_Nr Preis Nun möchte ich p. SQL-Befehl den durchschnittlichen Rechnungsbetrag aller Rechnungen ermitteln. Also z.B. 1. Rechnung 20,-- 2. Rechnung 40,-- 3. Rechnung 60,-- 4. Rechnung 100,-- Ergebnis: 55,-- Wie gehe ich vor ? Mit
SQL-Code:
bekomme ich die Summen der einzelnen Rechnungen.
SELECT SUM(p.Preis)
FROM Positionen p, Rechnungen r WHERE p.Rech_Nr = r.Rech_Nr Aber wie bekomme ich dann alle Summen der Rechnungen und davon dann den Mittelwert ? |
Re: SQL AVG mit 2 Tabellen
Ich denke mal mit
SQL-Code:
SELECT SUM(p.Preis) / COUNT(p.Preis)
FROM Positionen p, Rechnungen r WHERE p.Rech_Nr = r.Rech_Nr |
Re: SQL AVG mit 2 Tabellen
Mit
SQL-Code:
bekommst du die Summe aller Rechnungen
SELECT SUM(p.Preis)
FROM Positionen p Um die durchschnittliche Summe zu erhalten mußt du dieses durch die Anzahl der Rechnungen Teilen.
SQL-Code:
SELECT COUNT( RECHNR) from Positionen;
|
Re: SQL AVG mit 2 Tabellen
Kennt Paradox nicht AVG?
SQL-Code:
Gruss
SELECT AVG(p.Preis)
FROM positionen p INNER JOIN rechnungen r ON p.rech_nr = r.rech_nr Thorsten |
Re: SQL AVG mit 2 Tabellen
OK,
aber so bekomme ich den Durchschnittswert der Positionen. Ich möchte aber den Durchsnittswert der Rechnungssummen ermitteln, die sich nach SUM(Preis) ergeben. Vielleicht hab ich mich auch nicht klar ausgedrückt oder hab ich hier einen Denkfehler? |
Re: SQL AVG mit 2 Tabellen
Entweder wie ich oben beschrieben oder
SQL-Code:
SELECT SUM(p.Preis) / Counr (p.Rechnr)
FROM Positionen p |
Re: SQL AVG mit 2 Tabellen
Rechnung1
30 20 30 1.Summe 80 Rechnung2 40 50 100 2.Summe 190 Rechnung3 40 30 20 3.Summe 90 Mittelwert der Rechnungssummen 120 Der SQL Befehl
SQL-Code:
ergibt aber 40. (360/9) da 9 Positionen.
SELECT SUM(p.Preis) / Counr (p.Rechnr)
FROM Positionen p Ich möchte aber (Summe1 + Summe2 + Summe3 / 3) = 120. |
Re: SQL AVG mit 2 Tabellen
Dann mußt du es, wie in meinem ersten Post doch in 2 Schritten machen oder du verwendest eine temporäre Tabelle.
|
Re: SQL AVG mit 2 Tabellen
Sorry, das ich nochmal störe.
Aber genau das macht doch die Funktion AVG, deshalb die Frage ob es die in Paradox gibt. Edit: Ok, war gerade etwas auf dem Holzweg. Neuer Versuch...
SQL-Code:
Gruss
SELECT AVG(summen)
FROM (SELECT p.rech_nr, SUM(p.Preis) summen FROM positionen p INNER JOIN rechnungen r ON p.rech_nr = r.rech_nr GROUP BY p.rech_nr) x Thorsten |
Re: SQL AVG mit 2 Tabellen
Ich weiss nicht, ob es mit Paradox funtioniert, aber versuche einmal folgendes:
SQL-Code:
select (avg(select sum(preis)
from pos where rech.rech_nr = pos.rech_nr)) from rech |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:11 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