Delphi-PRAXiS
Seite 3 von 3     123   

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)

grenzgaenger 9. Nov 2007 20:18

Re: Was ist an diesem Statement falsch?
 
Zitat:

Zitat von DeddyH
[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]

hab mir zwar nicht alle beiträge angeguckt, aber schlicht und einfach ist der fehler, dass du hier 'n subselect hast... also abfrage is exits oder in... dann sollte das auch klappen.

mfg.
ggg

mkinzler 9. Nov 2007 20:20

Re: Was ist an diesem Statement falsch?
 
Subselect sollte aber nur einen Wert zurückliefern, dann wäre in nicht unbedingt notwendig, aber schaden kann es natürlich nicht.

DeddyH 9. Nov 2007 20:21

Re: Was ist an diesem Statement falsch?
 
Na gut, in Anbetracht dessen, dass ich das hier nur für jemand anderen zur Verdeutlichung der Mehrwertsteuer-Problematik mache, habe ich jetzt keine Lust mehr, mich noch weiter zu ärgern. Dann muss man halt im ersten Schritt den jeweils aktuellen Prozentsatz je Gruppe ermitteln und daraus dann am Frontend ein entsprechendes zweites Statement zusammenbasteln (obwohl ich sowas hasse).

P.S.: Mit IN hab ich auch schon experimentiert, bringt auch nix.

grenzgaenger 9. Nov 2007 20:37

Re: Was ist an diesem Statement falsch?
 
Zitat:

Zitat von mkinzler
Subselect sollte aber nur einen Wert zurückliefern, dann wäre in nicht unbedingt notwendig, aber schaden kann es natürlich nicht.

tja, ausserdem ist noch any und some zulässig, wenn ich mich nicht irre. einfach mal ind er hilfe anchgugen... mit '=' klappt es auf alle fälle nicht.

Dax 9. Nov 2007 20:42

Re: Was ist an diesem Statement falsch?
 
Zitat:

Zitat von grenzgaenger
tja, ausserdem ist noch any und some zulässig, wenn ich mich nicht irre. einfach mal ind er hilfe anchgugen... mit '=' klappt es auf alle fälle nicht.

Möglicherweise ist es eine Postgres-Erweiterung von SQL (was ich aber nicht denke), aber dort funktioniert sowas.

grenzgaenger 9. Nov 2007 20:48

Re: Was ist an diesem Statement falsch?
 
tja, nach ANSI SQL ist das jedenfalls nicht erlaubt. ist möglich, dass dies die lokale datenbank unterstützt, aber darauf sollte man sich normal nicht verlassen. wie gesagt es gibt verschiedene statemens, welche subselects unterstützen.. IN, IS EXISTS, ANY, SOME ...

und noch 'n schönen abend

PS: teilweise wissen auch die datenbank hersteller nichtgenau was sie machen... ;-) . daher mal im handbuch nachsehen ... :-)

grenzgaenger 9. Nov 2007 20:51

Re: Was ist an diesem Statement falsch?
 
Zitat:

Zitat von DeddyH
P.S.: Mit IN hab ich auch schon experimentiert, bringt auch nix.

wie wär es mal, das ganze mit 'ner ansi SQL DB auszuprobieren... und nicht immer diese exotischen derivate...

TBx 9. Nov 2007 21:38

Re: Was ist an diesem Statement falsch?
 
N'Abend!

Lass doch mal das hier überflüssige
SQL-Code:
AS aktuell
aus dem Subselect raus.
Ich würde die Fehlermeldung dahingehend interpretieren, dass er das Feld nicht kennt, kennt ABS Feldnamen womöglich nicht mehr, sobald man einen Alias draufgelegt hat?
Ist vielleicht ja nen Versuch Wert.

Gruß

onlinekater

DeddyH 10. Nov 2007 10:29

Re: Was ist an diesem Statement falsch?
 
Danke für die vielen Vorschläge. Ich habe es mittlerweile so gelöst wie in #23 angedeutet. Ist zwar nicht schön, funktioniert aber.


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:55 Uhr.
Seite 3 von 3     123   

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