Boolescher Ausdrucksfehler

Hallo,

ich bekomme den SQL-Fehler 4145 „In der Nähe von ‚and‘ wurde ein nicht boolescher Ausdruck in einem Kontext angegeben, in dem eine Bedingung erwartet wird.“ Hier der von mir eingestellte Befehl:

MA_REFNR in (select MA_REFNR from MA where (year(getdate()) - year (case when ZUGRECHN != 0 then ZUGRECHN else ZUGRECHT end)) and MA.MA_REFNR = MA_EINAUS.MA_REFNR and MA.WERK = ‚Voba KA‘ and MA.STATUS != ‚ausgeschieden‘ and MA.STATUS != ‚Planstelle‘ and MA.STATUS != ‚passiv‘ and case (when ZUGRECHN != 0) then ZUGRECHN else (ZUGRECHT end != 0 and year(getdate()) - year(case when ZUGRECHN != 0 then ZUGRECHN else ZUGRECHT end) = 10))

Vielen Dank schonmal für die Hilfe.

Viele Grüße Matthias

Hallo,

ich bekomme den SQL-Fehler 4145 „In der Nähe von ‚and‘ wurde
ein nicht boolescher Ausdruck in einem Kontext angegeben, in
dem eine Bedingung erwartet wird.“ Hier der von mir
eingestellte Befehl:

Hallo,

Welche DB, welche Version ??? Wär ausserdem nett, wenn du die Scripte zum erstellen der Tabellen auch mitliefern würdest, damit nicht jeder, der dir helfen will, zuerst die Grundlage dafür schaffen muss.

Gruss

Hallo,

DB-System: MS-SQL Server
DB-Version: 9.00

Die Scripte kann ich leider nicht mitliefern, da die Daten in einem separaten Programm stehen.

Viele Grüße
Matthias

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo,

für alle die, die es interessiert ist hier die Lösung (ein Freund, dein Freund und Helfer :smile: oder wie das war):
MA_REFNR in (select MA.MA_REFNR from MA, MA_EINAUS where MA.MA_REFNR = MA_EINAUS.MA_REFNR and MA.WERK = 'Voba KA’and MA.STATUS != ‚ausgeschieden‘ and MA.STATUS != ‚Planstelle‘ and MA.STATUS != ‚passiv‘ and CASE WHEN ZUGRECHN is not #null# THEN ZUGRECHN Else ZUGRECHT end is not #null# and year(getdate()) - YEAR(CASE WHEN ZUGRECHN is not #null# THEN ZUGRECHN Else ZUGRECHT end) = 10 and dateadd(yy, 10, CASE WHEN ZUGRECHN is not #null# THEN ZUGRECHN Else ZUGRECHT end) - 42 [Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]