当@BU ='ES'时,我想过滤掉'TR'记录。这对于'ES'来说效果很好,但是当我在另一个国家(即'SE')运行此查询时,它不会返回我期望的行数。 预期行数:28941 返回的行数:28916
我知道这与“ TR”的提交者有关。我该如何在西班牙使用它,以及在其他BU上运行它。
“ TR”仅需要针对“ ES”进行过滤。
declare @BU varchar(2);
set @BU = 'SE';
select case
when @BU = 'ES' then
p.PanelClass
else
'b'
end as L1
from Panels p
left outer join Slots sl
on sl.ID = p.ID
left outer join Packages pa
on pa.ID = p.ID
where p.Status = 1
and case
when @BU = 'ES' then
p.PanelClass
else
'b'
end <> 'TR';
答案 0 :(得分:1)
尝试
declare @BU varchar(2);
set @BU = 'SE';
select case
when @BU = 'ES' then
p.PanelClass
else
'b'
end as L1
from Panels p
left outer join Slots sl
on sl.ID = p.ID
left outer join Packages pa
on pa.ID = p.ID
where p.Status = 1
and 'TR' <> case when @BU = 'ES' then p.PanelClass else 'b' end;