![]() |
Datenbank: ACCESS • Version: 2000 • Zugriff über: ADO
[erledigt]Mal wieder ein Problem mit einer sql-Anweisung
Moin. Ich bins mal wieder. Ich habe folgendes Problem. Ich habe eine Tabelle mit Rechnungs-Daten (RECHKOPF) und den Rechnungspositionen (RECHPOSI). Verknüpft habe ich diese über das Feld RECHNR. Nun will ich mir die Daten ausgeben lassen, bei denen die Summe der Rechnungspositionen vom Rechnungsbetrag im Rechkopf abweicht. Folgendes habe ich schon :
SQL-Code:
Also Ausgabe bekomme ich zu jeder Rechnungsnummer den Betrag der Rechnung sowie die die Summe der Rechnungspositionen. Wenn ich aber in der WHERE-Klausel rechkopf.rechnetto <> sum(rechposi.preis) benutze, bekomme ich die meldung das eine Aggregat-Funktion nicht in einer WHERE-Klausel verwendet werden kann.
SELECT rechkopf.rechnr, rechkopf.rechnetto, sum(rechposi.preis) from rechkopf
LEFT JOIN rechposi ON rechkopf.rechnr = RECHPOSI.rechnr Meine Frage ist also wie ich es lösen kann. Gruß tr909 |
Re: Mal wieder ein Problem mit einer sql-Anweisung
Hi,
ich denke, das funktioniert nur über ein SubSelect:
SQL-Code:
...so in etwa aus dem Kopf...
SELECT r.rechnr
, r.rechnetto , (select sum(p.preis) from RECHPOSI p where p.rechnr = r.rechnr) as SUM_PREIS from rechkopf r where (select sum(p.preis) from RECHPOSI p where p.rechnr = r.rechnr) <> r.rechnetto Frank |
Re: Mal wieder ein Problem mit einer sql-Anweisung
Mit "Having" sollte das auch funktionieren:
SQL-Code:
select rk.REchNr,
max(rk.rechnetto) as [Summe auf der Rechnung], Sum (rp.preis) as [Summe der Positionen] from RechKopf rk join RechPosi rp on rk.RechNr = rp.Rechnr group by rk.RechNr having max(rk.rechnetto) <> Sum (rp.preis) |
Re: Mal wieder ein Problem mit einer sql-Anweisung
Besten Dank. Funktioniert beides bestens. Musste die beiden Werte die verglichen werden aber noch runden, da sonst auch viele mit scheinbar gleichen Werten ausgegeben wurden.
Die Variante mit Having werd ich aber nehmen, die ist um längen schneller (2Sekunden zu 1-2 Minuten) Gruß und Dank tr909 |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:12 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