2009-08-17 24 views
1

Ich schreibe einen SSRS-Bericht, der den Wert eines der Felder basierend auf dem Wert eines anderen Felds in derselben Zeile ändert. Wäre der beste Weg, es über SQL zu tun?Multiplizieren einer Spalte mit -1 basierend auf einer anderen Spalte

ie-Multiply FieldX (float) von -1, wenn der Wert von FieldY mit D endet, DA oder 'DB' usw.

ich zunächst suchte eine Case-Anweisung bei Verwendung jedoch wurde ich immer bei der Arbeit heute stecken geblieben. Irgendwelche Ideen? Das SQL verwendet bereits eine Union, Summen und Gruppierungen.

Antwort

2

So geht es in SQL mit einer case Anweisung. Sie können die or s immer in ihren eigenen when...then Block aufteilen, aber es funktioniert genauso gut. Genießen!

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 

Jetzt, wenn Sie wissen wollen, ob es mit "D" oder "D" endet? woher '?' ist irgendein Buchstabe, dann:

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

Danke, ich habe das zweite Beispiel benutzt. Einfach, wenn Sie wissen, wie! – Audioillity

Verwandte Themen