![]() |
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:
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:
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] So hätte ich es gerne, wird aber wie gesagt moniert:
SQL-Code:
[/edit]
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) |
Re: Was ist an diesem Statement falsch?
Weil der Alias M außerhalb des Subselects unbekannt ist.
|
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.
|
Re: Was ist an diesem Statement falsch?
Versuch mal
SQL-Code:
AND MAX(M.gueltig_seit) <= A.Datum)
|
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.
|
Re: Was ist an diesem Statement falsch?
Schon mit HAVING satt WHERE versucht (wegen Gruppierung) oder eine sortierete limitiertung Abfrage
|
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.
|
Re: Was ist an diesem Statement falsch?
Unterstützt ABS Limitierung?
|
Re: Was ist an diesem Statement falsch?
Weiß ich nicht, ich habe es erst vor 3 Stunden installiert :oops:
|
Re: Was ist an diesem Statement falsch?
Klappt es vielleicht so?
SQL-Code:
Eventuell mag ABS den Verweis auf einen Alias außerhalb des Subselects nicht, was ich aber auch nicht so recht glauben kann :gruebel:
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) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:53 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