我正在编写一份SSRS报告,该报告将根据同一行中另一个字段的值更改其中一个字段的值。最好的方法是通过SQL吗?
如果FieldX
的值以-1
,FieldY
或'DB'等结尾,则 ie- D
(浮动)乘以DA
。
我最初在考虑使用案例陈述,但今天我的工作有点困难。有任何想法吗? SQL已经使用了union,sums和grouping。
答案 0 :(得分:2)
以下是使用case
语句在SQL中执行此操作的方法。您始终可以将or
分解为自己的when...then
块,但这种方式也可以。享受!
select
case
when right(FieldY, 1) = 'D'
or right(FieldY, 2) = 'DA'
or right(FieldY, 2) = 'DB'
then FieldX * (-1)
else FieldX
end as FieldX
from
table
现在,如果你想知道它是以“D”还是“D?”结尾?在哪里'?'是任何一封信,然后:
select
case
when right(FieldY, 1) = 'D' then FieldX * (-1)
when left(right(FieldY, 2), 1) = 'D' then FieldX * (-1)
else FieldX
end as FieldX
from
table