Zitat von
manfred_h:
Dies widerum geht einwandfrei solange ich nur einen Wert in dem Feld habe:
Du redest in Rätseln! So kann man dir nicht helfen! Bitte artikuliere dich konkreter!
Was geht dann nicht? gibt es eine Fehlermeldung, wenn es mehrere Werte sind? Oder gibt das Statement nicht die richtigen Zeilen zurück? Welches Feld ist in deiner Aussage gemeint?
Zitat von
manfred_h:
Ein Problem ist dass ich in der aktuellen Tabelle ein Feld ( NEW.SERVICE )habe das mehrere Werte beinhalten kann.
( z.B Hotel / Altersheim ... ) Es soll nun geprüft werden ob in RPL$SERVICE.SERVICE_NAME ein Wert vorhanden ist
der im Feld NEW.SERVICE auftaucht ( Es können auch mehrere sein ).
Kannst du diese Aussage mal etwas besser darlegen? "Es können auch mehrere sein" wie muss ich mir das vorstellen? Sind diese Angaben in Zeilen oder in Spalten angelegt? Innerhalb einer Zelle? Wenn ja, wie separiert? Oder wenn (hoffentlich) nein, also in Zeilen, wie sieht das konkret aus? Beispiel! Tabellen + Inhalt + Ergebnis
Zitat von
manfred_h:
SQL-Code:
OR (NEW.C_NO IN (SELECT RPL$GROUPS_RIGHTS.CAMP_NO
FROM RPL$GROUPS
INNER JOIN RPL$GROUPS_RIGHTS
ON RPL$GROUPS_RIGHTS.GROUP_NO = RPL$GROUPS.GROUP_NO
WHERE RPL$GROUPS.GROUP_NO = MEMBER_GROUP))
Wo kommt in diesem Teil deines Statements "MEMBER_GROUP" her? Außerhalb der Unterabfrage? Wenn ja, dann ist das hier eine ganz schlechte Wahl, weil man den IN-Operator niemals mit der äußeren Abfrage über die WHERE-Klausel koppeln sollte. Dafür gibt es den EXISTS-Operator, der ist genau für soetwas vorhanden:
Zitat von
manfred_h:
SQL-Code:
OR (EXISTS (SELECT *
FROM RPL$GROUPS
INNER JOIN RPL$GROUPS_RIGHTS
ON RPL$GROUPS_RIGHTS.GROUP_NO = RPL$GROUPS.GROUP_NO
WHERE RPL$GROUPS.GROUP_NO = x.MEMBER_GROUP
AND RPL$GROUPS_RIGHTS.CAMP_NO = NEW.C_NO))
Wobei ich mir dann einen Alias bei "MEMBER_GROUP" wünschen würde.
Sorry, für die vielen Fragen. Aber diesen Eiertanz hier um die eigentliche Lösung, konnte ich nicht mehr mit ansehen. Fangen wir einfach nochmal an, erkläre dein Problem erstmal ausführlich und so, dass auch jemand, der dein System nicht sehen kann, auch versteht, was du da hast und vor allen Dingen, was du eigentlich genau wie haben möchtest.
Anderen ist das vielleicht alles klar, mir nicht. Falls dir das zu viele Fragen sind, dann ignoriere mich einfach und ich beschäftige mich nicht weiter mit deinem Problem.