Fehler in SQL-Datenbank

Hallo

Ich weiß nicht, ob ich hier richtig bin, aber ich habe da mal ein Problem.

Ich erstelle gerade für meine Arbeit in einem betriebsinternen Programm einen Report aus einer SQL-Datenbank.

Hier müsste ich eine WENN-Funktion einbauen.
Das Programm zeigt mir an, das diese nach dem „Case-Konstrukt“ aufgebaut werden muss. Mit diesem Hinweis:

CASE Ausdruck { WHEN Ausdruck THEN Ausdruck } [ELSE Ausdruck] END
Arbeitet mit When, Then, Else, und End.

Habe folgende Formel erstellt:

case ‚Fälligkeit‘ { WHEN [Mitglied].[Mitgliedschaft].[Mitgliedschaft Mitgliedsbeitrag Periode]=‚vierteljährlich‘ then [Mitglied].[Mitgliedschaft].[Mitgliedschaft Mitgliedsbeitrag Fälligkeitsmonat]=(‚3‘; ‚6‘; ‚9‘; ‚12‘)} [else [Mitglied].[Mitgliedschaft].[Mitgliedschaft Mitgliedsbeitrag Fälligkeitsmonat]=‚9‘] end

Beim Überprüfen und Ausführen erscheint aber immer die folgende Fehlermeldung:

QE-DEF-0459 CCLException
QE-DEF-0260 Fehler in der Syntaxanalyse vor oder nahe der Stelle: 20 von: „case ‚Fälligkeit‘ {“
QE-DEF-0261 QFWP - Syntaxanalysetext: case ‚Fälligkeit‘ { WHEN [Mitglied].[Mitgliedschaft Mitgliedsbeitrag Periode]=‚vierteljährlich‘ then [Mitglied].[Mitgliedschaft].[Mitgliedschaft Mitgliedsbeitrag Fälligkeitsmonat]=(‚3‘;‚6‘;‚9‘;‚12‘)} [else [Mitglied].[Mitgliedschaft].[Mitgliedschaft Mitgliedsbeitrag Fälligkeitsmonat]=‚9‘] end

Ob mir jemand einen Tipp geben kann, was mein Fehler ist.
Irgendwie stehe ich derzeit ein bisschen auf dem Schlauch.

Dankeschön

Moin, sweety,

vielleicht erkennt ja jemand das DBMS, ich jedenfalls nicht.

case ‚Fälligkeit‘ { WHEN

‚Fälligkeit‘ ist ein Literal, das passt nicht ganz zur Syntax - erwartet wird hier ein Ausdruck.

Ganz allgemein gesagt: Ein Case, der eine Konstante abfragt, ist keine Fallunterscheidung, sondern … hm.

Gruß Ralf

Hallo sweety86,

Deinen Ausdruck scheint mir ein leichte Fehlinterpretation zu sein

CASE Ausdruck { 
 WHEN Ausdruck 
 THEN Ausdruck 
} [ELSE Ausdruck] 
END

case 'Fälligkeit' { 
 WHEN [Mitglied].[Mitgliedschaft].[Mitgliedschaft Mitgliedsbeitrag Periode]='vierteljährlich' 
 then [Mitglied].[Mitgliedschaft].[Mitgliedschaft Mitgliedsbeitrag Fälligkeitsmonat]=('3'; '6'; '9'; '12')} 
 [else [Mitglied].[Mitgliedschaft].[Mitgliedschaft Mitgliedsbeitrag Fälligkeitsmonat]='9'] 
end

würde ich so interpretieren:

case [Mitglied].[Mitgliedschaft].[Mitgliedschaft Mitgliedsbeitrag Periode] { 
 WHEN 'vierteljährlich' THEN 
 [Mitglied].[Mitgliedschaft].[Mitgliedschaft Mitgliedsbeitrag Fälligkeitsmonat]=('3'; '6'; '9'; '12')
} ELSE {
 [Mitglied].[Mitgliedschaft].[Mitgliedschaft Mitgliedsbeitrag Fälligkeitsmonat]='9'
}
end

Was wahrscheinlich nicht funktioniert, dass Du direkt 4 Werte dem Attribut „Mitgliedschaft Mitgliedsbeitrag Fälligkeitsmonat“ zuordnest.

Aber wie schon von Vorantworter gesagt, dass Datenbank-System kenne ich auch nicht. Dies ist eine reine Syntax-Korrektur.

MfG Georg V.