Hallo
Ich habe die Tabelle t_VolumegroupToVolume und die Tabelle t_Volumegroup und will mit einem DELETE Query diejenigen Datensätze aus t_VolumegroupToVolume löschen, die in der Tabelle t_Volumegroup in der Spalte SystemID einen bestimmten Wert haben und deren VolumegroupID nicht '[SystemID]_DELETED' ist. Verknüpft sind die beiden Tabellen über die VolumegroupID.
Hier mein aktueller Ansatz, dann sollte eigentlich klar sein was ich will:
DELETE FROM t_VolumegroupToVolume WHERE VolumegroupID != 'IBM.2107-XYZ_DELETED'
AND 'IBM.2107-XYZ' IN (SELECT SystemID FROM t_VolumegroupToVolume WHERE t_Volumegroup.VolumegroupID = t_VolumegroupToVolume.VolumegroupID);
So funktioniert das leider nicht. Ich bekommen immer folgende Meldungen:
"Msg 4104, Level 16, State 1, Line 7
Der mehrteilige Bezeichner "t_Volumegroup.VolumegroupID" konnte nicht gebunden werden.
Msg 207, Level 16, State 1, Line 8
Ungültiger Spaltenname 'SystemID'."
Weiss jemand wie ich das machen muss, damit es funktioniert?
EDIT: Ich konnte das Problem nun doch noch selber lösen:
DELETE FROM t_VolumegroupToVolume WHERE t_VolumegroupToVolume.VolumegroupID != 'IBM.2107-XYZ_DELETED'
AND t_VolumegroupToVolume.VolumegroupID IN
(SELECT t_VolumegroupToVolume.VolumegroupID FROM t_VolumegroupToVolume, t_Volumegroup
WHERE t_Volumegroup.VolumegroupID = t_VolumegroupToVolume.VolumegroupID
AND t_Volumegroup.SystemID = 'IBM.2107-XYZ');