Chyba robisz podstawowy błąd - nie bardzo wiesz co chcesz sprawdzić a już zaczynasz to pisać.
W ogóle nie wiem po co Ci nr pozycji.
Przecież wystarczy sprawdzić czy:
- Istnieje jakakolwiek pozycja z grupą X
I jednocześnie
- Istnieje jakakolwiek pozycja z grupą inna niż X.
Nie zapomnij że grupy może nie być.
I weź to po sprawdzaj najpierw na zwykłych, już zapisanych dokumentach, a nie w triggerze.
Tylko zrób sobie porządny zbiór testowych dokumentów.
Jak już opanujesz tego SELECTa to weź się za trigger.
no właśnie wiem co chcę sprawdzić (dokładnie to o czym piszesz) ale nie widzę/nie rozumiem, prawdopodobnie jakiegoś oczywistego błędu, który popełniam w składni, ponieważ ciągle wracam do punktu wyjścia, pierwszy warunek działa
SELECT @pid = ob_DokMagId FROM inserted
SELECT @grup = tw_IdGrupa FROM tw__Towar WHERE tw_Id = @tow
IF
EXISTS (SELECT * from dok_Pozycja where ob_DokMagId = @pid AND @grup = 27)
czyli jeśli którykolwiek towar ma grupę 27, to wyświetla błąd
ale jak dodam drugi
AND
EXISTS (SELECT * from dok_Pozycja where ob_DokMagId = @pid AND @grup <> 27)
to zapisuje każdy dokument, bez znaczenia jakie są w nim grupy. ob_DokMagId = @pid stosuję, żeby zapytanie działało tylko do bieżącego dokumentu a nie całej tabeli dok_Pozycja. Gdzie ja nie widzę błędu....?