2009-08-17 8 views
1

Я пишу отчет SSRS, который изменит значение одного из полей на основе значения другого поля в той же строке. Будет ли лучший способ сделать это через SQL?Умножение столбца на -1 на основе другого столбца

т.е.-Multiply FieldX (поплавок) с помощью -1, если значение FieldY заканчивается D, DA, или «DB» и т.д.

я изначально смотрел на использовании случай заявление, однако я получаю немного застрял на работе сегодня. Есть идеи? SQL уже использует объединение, суммы и группировку.

ответ

2

Вот как это сделать в SQL с оператором case. Вы всегда можете разбить or s на свой собственный блок 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 
+0

Спасибо, я использовал второй пример. Просто, когда вы знаете, как! – Audioillity

Смежные вопросы