Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Was ist an diesem Statement falsch? (https://www.delphipraxis.net/103091-ist-diesem-statement-falsch.html)

DeddyH 9. Nov 2007 19:37

Datenbank: ABS DB • Zugriff über: DBManager

Was ist an diesem Statement falsch?
 
Wieso mag ABS DB die letzte Zeile nicht? Bin ich betriebsblind?
SQL-Code:
SELECT C.Bezeichnung AS Artikel,C.Preis AS Einzelpreis,B.Menge AS Menge,D.Wert AS 'MwSt %',
(C.Preis * B.Menge) AS 'Gesamt Netto',(C.Preis * (1 + D.Wert / 100) * Menge) AS 'Gesamt Brutto'
FROM Beleg A
JOIN BelegPos B ON B.Beleg_id = A.Id
JOIN Artikel C ON C.Id = B.Artikel_id
JOIN MwStSatz D ON D.Gruppe_ID = C.MwStGruppeId
WHERE A.Id = 1
AND D.gueltig_seit = (SELECT MAX(M.gueltig_seit) AS aktuell
                      FROM MwStSatz M
                      WHERE M.Gruppe_ID = D.Gruppe_ID)
                      --AND M.gueltig_seit <= A.Datum)
Ich möchte doch nur den MwSt-Satz ermitteln, der zum Zeitpunkt des Belegdatums gültig war. Entferne ich den Kommentar, erhalte ich die Fehlermeldung Search condition is not applicable - Native error: 30144. Lasse ich den Kommentar so, wie er oben ist, erhalte ich immer den aktuellsten Satz ohne Berücksichtigung des Belegdatums :wall:


[edit] So hätte ich es gerne, wird aber wie gesagt moniert:
SQL-Code:
SELECT C.Bezeichnung AS Artikel,C.Preis AS Einzelpreis,B.Menge AS Menge,D.Wert AS 'MwSt %',
(C.Preis * B.Menge) AS 'Gesamt Netto',(C.Preis * (1 + D.Wert / 100) * Menge) AS 'Gesamt Brutto'
FROM Beleg A
JOIN BelegPos B ON B.Beleg_id = A.Id
JOIN Artikel C ON C.Id = B.Artikel_id
JOIN MwStSatz D ON D.Gruppe_ID = C.MwStGruppeId
WHERE A.Id = 1
AND D.gueltig_seit = (SELECT MAX(M.gueltig_seit) AS aktuell
                      FROM MwStSatz M
                      WHERE M.Gruppe_ID = D.Gruppe_ID
                      AND M.gueltig_seit <= A.Datum)
[/edit]

mkinzler 9. Nov 2007 19:38

Re: Was ist an diesem Statement falsch?
 
Weil der Alias M außerhalb des Subselects unbekannt ist.

DeddyH 9. Nov 2007 19:40

Re: Was ist an diesem Statement falsch?
 
Nee, das ist es nicht. Die letzte Klammer vor dem Kommentar ist noch vom C & P übrig geblieben, dafür soll der Kommentar entfernt werden, dessen Klammer gilt.

mkinzler 9. Nov 2007 19:46

Re: Was ist an diesem Statement falsch?
 
Versuch mal
SQL-Code:
AND MAX(M.gueltig_seit) <= A.Datum)

DeddyH 9. Nov 2007 19:48

Re: Was ist an diesem Statement falsch?
 
Dieselbe Fehlermeldung. Der Subselect alleine wird auch anstandslos ausgeführt, ich versteh so langsam die Welt nicht mehr.

mkinzler 9. Nov 2007 19:49

Re: Was ist an diesem Statement falsch?
 
Schon mit HAVING satt WHERE versucht (wegen Gruppierung) oder eine sortierete limitiertung Abfrage

DeddyH 9. Nov 2007 19:51

Re: Was ist an diesem Statement falsch?
 
Gruppierung mit HAVING hab ich auch schon durch. Mir fehlt lediglich der Vergleich mit dem Belegdatum, dann ist das Ding eingetütet.

mkinzler 9. Nov 2007 19:53

Re: Was ist an diesem Statement falsch?
 
Unterstützt ABS Limitierung?

DeddyH 9. Nov 2007 19:54

Re: Was ist an diesem Statement falsch?
 
Weiß ich nicht, ich habe es erst vor 3 Stunden installiert :oops:

Dax 9. Nov 2007 19:58

Re: Was ist an diesem Statement falsch?
 
Klappt es vielleicht so?
SQL-Code:
SELECT C.Bezeichnung AS Artikel,C.Preis AS Einzelpreis,B.Menge AS Menge,D.Wert AS 'MwSt %',
(C.Preis * B.Menge) AS 'Gesamt Netto',(C.Preis * (1 + D.Wert / 100) * Menge) AS 'Gesamt Brutto'
FROM Beleg A
JOIN BelegPos B ON B.Beleg_id = A.Id
JOIN Artikel C ON C.Id = B.Artikel_id
JOIN MwStSatz D ON D.Gruppe_ID = C.MwStGruppeId
WHERE A.Id = 1
AND D.gueltig_seit = (SELECT MAX(M.gueltig_seit) AS aktuell
                      FROM MwStSatz M, Beleg A1
                      WHERE M.Gruppe_ID = D.Gruppe_ID
                      AND M.gueltig_seit <= A1.Datum AND A1.ID = 1)
Eventuell mag ABS den Verweis auf einen Alias außerhalb des Subselects nicht, was ich aber auch nicht so recht glauben kann :gruebel:


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:54 Uhr.
Seite 1 von 3  1 23      

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