Sto tentando di eseguire una sorta di istruzione "if" nella mia clausola where. Mi rendo conto che sql non supporta questo, ma sono sicuro che ci deve essere un modo per farlo funzionare con la sintassi sql. Come mostrato nell'area che ho in grassetto, sto cercando di trovare tutti gli elementi che iniziano con d e li filtrano se userfld2 = container.Esecuzione di un'istruzione di tipo "if" in una clausola sql dove
Esiste un modo più ragionevole per fare questo rispetto a quello che sto facendo o sono lontano dal marchio?
Grazie in anticipo.
Select a.ItemID
, b.ConversionFactor VCaseAmt
, sum(c.ConversionFactor + 1) SCaseAmt
, a.status
, a.UserFld2
From timItem a
inner join timItemUnitOfMeas b on a.ItemKey = b.ItemKey
and b.TargetUnitMeasKey = 115
left join timItemUnitOfMeas c on a.ItemKey = c.ItemKey
and c.TargetUnitMeasKey = 116
left join timItemUnitOfMeas d on a.ItemKey = d.ItemKey
and d.TargetUnitMeasKey = 126
Where d.TargetUnitMeasKey is null
and b.ConversionFactor != c.ConversionFactor + 1
and a.Status = 1
and **(filter a.itemid not like 'd%' when a.userfld2 = 'Container')**
Group by a.ItemID, b.TargetUnitMeasKey, b.ConversionFactor, C.TargetUnitMeasKey
, c.ConversionFactor, a.status, a.UserFld2
Order by a.ItemID
filtro a.itemid non piace 'd%' ** e ** a.userfld2 = 'Contenitore'? – NINCOMPOOP