[ dule_ns @ 08.06.2021. 08:48 ] @
Imam neki view (view1) koji uvezuje vise tabela i recimo da to ne mogu da diram. Rezultat koji dobijam je otprilike ovakav: PermissionId | AccountDataId | ProfileCompanyId ------------------------------------ val.1 | acc1 | 1 val.1 | acc1 | 2 val.1 | acc1 | null val.1 | acc2 | 1 val.1 | acc2 | 6 val.1 | acc2 | 8 val.1 | acc2 | 10 val.1 | acc3 | null Zbog dodatnog uslova permissionid mi je uvek isti. Jedan account moze da ima pridruzen jedan ili vise company. Ako je companyid null, to znaci da moze da vidi za sve kompanije. Ono sto meni treba jeste da ako neki AccountDataId ima ProfileCompanyId null i jos neke, da dobijem samo taj null, a ako nema null da izlistam sve koje ima, tj da dobijem sledece (da se crveno ne prikaze): PermissionId | AccountDataId | ProfileCompanyId ------------------------------------ val.1 | acc1 | 1 val.1 | acc1 | 2 val.1 | acc1 | null val.1 | acc2 | 1 val.1 | acc2 | 6 val.1 | acc2 | 8 val.1 | acc2 | 10 val.1 | acc3 | null ono sto sam ja uradio je otprilike sledece: napravim view2 da dobijem accounte koji su ProfileCompanyId null: Code: select distinct u1.* from view1 u1 where u1.ProfileCompanyId is null napravim view3: Code: select PermissionId, AccountDataId, ProfileCompanyId, UnitId, Condition, MeetingId from view2 union select u.PermissionId, u.AccountDataId, u.ProfileCompanyId, u.UnitId, u.Condition, u.MeetingId from view1 u where not exists (select 1 from view2 u2 where u.AccountDataId = u2.AccountDataId and u.PermissionId = u2.PermissionId) koji dalje koristim u upitu vec nekom trecem. Da li ima lepse resenje (a verujem da ima)? |