AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi SQL AVG mit 2 Tabellen
Thema durchsuchen
Ansicht
Themen-Optionen

SQL AVG mit 2 Tabellen

Ein Thema von needatip · begonnen am 5. Nov 2006 · letzter Beitrag vom 5. Nov 2006
Antwort Antwort
Seite 1 von 2  1 2      
needatip

Registriert seit: 11. Jan 2004
246 Beiträge
 
Delphi 10.4 Sydney
 
#1

SQL AVG mit 2 Tabellen

  Alt 5. Nov 2006, 14:55
Datenbank: Paradox • Version: 7 • Zugriff über: BDE
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:
SELECT SUM(p.Preis)
 FROM Positionen p, Rechnungen r
WHERE p.Rech_Nr = r.Rech_Nr
bekomme ich die Summen der einzelnen Rechnungen.
Aber wie bekomme ich dann alle Summen der Rechnungen und davon dann den Mittelwert ?
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#2

Re: SQL AVG mit 2 Tabellen

  Alt 5. Nov 2006, 14:58
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
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: SQL AVG mit 2 Tabellen

  Alt 5. Nov 2006, 15:00
Mit
SQL-Code:
SELECT SUM(p.Preis)
FROM Positionen p
bekommst du die Summe aller Rechnungen
Um die durchschnittliche Summe zu erhalten mußt du dieses durch die Anzahl der Rechnungen Teilen.

SELECT COUNT( RECHNR) from Positionen;
Markus Kinzler
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: SQL AVG mit 2 Tabellen

  Alt 5. Nov 2006, 15:10
Kennt Paradox nicht AVG?

SQL-Code:
SELECT AVG(p.Preis)
FROM positionen p
INNER JOIN rechnungen r
  ON p.rech_nr = r.rech_nr
Gruss
Thorsten
  Mit Zitat antworten Zitat
needatip

Registriert seit: 11. Jan 2004
246 Beiträge
 
Delphi 10.4 Sydney
 
#5

Re: SQL AVG mit 2 Tabellen

  Alt 5. Nov 2006, 15:22
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?
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: SQL AVG mit 2 Tabellen

  Alt 5. Nov 2006, 15:26
Entweder wie ich oben beschrieben oder
SQL-Code:
SELECT SUM(p.Preis) / Counr (p.Rechnr)
FROM Positionen p
Markus Kinzler
  Mit Zitat antworten Zitat
needatip

Registriert seit: 11. Jan 2004
246 Beiträge
 
Delphi 10.4 Sydney
 
#7

Re: SQL AVG mit 2 Tabellen

  Alt 5. Nov 2006, 15:43
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:
SELECT SUM(p.Preis) / Counr (p.Rechnr)
FROM Positionen p
ergibt aber 40. (360/9) da 9 Positionen.
Ich möchte aber (Summe1 + Summe2 + Summe3 / 3) = 120.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: SQL AVG mit 2 Tabellen

  Alt 5. Nov 2006, 15:45
Dann mußt du es, wie in meinem ersten Post doch in 2 Schritten machen oder du verwendest eine temporäre Tabelle.
Markus Kinzler
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#9

Re: SQL AVG mit 2 Tabellen

  Alt 5. Nov 2006, 15:47
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:
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
Gruss
Thorsten
  Mit Zitat antworten Zitat
Meniskusschaden

Registriert seit: 1. Apr 2006
27 Beiträge
 
#10

Re: SQL AVG mit 2 Tabellen

  Alt 5. Nov 2006, 15:50
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
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 22:01 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