Question : SQL Conditional statement noob question about IF statements...

I wrote a simple SQL view to display some values, here What I would like it todo:
if dbo.ICHIST.TRANSTYPE = 2 AND ICHIST.TRANSDATE < 20070322 then ICHIST.QUANTITY = 0 ' in the output

I used the where clause, but i heard you can put some IF's in there?

Another side question? What is the best way to roll back in an DELETE statement on MSSQL enterprise, we have full recovery turned on?

Thanks.
Code Snippet:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
SELECT     TOP 100 PERCENT dbo.ICUNIT.ITEMNO AS Item_number, dbo.ICHIST.QUANTITY, dbo.ICHIST.UNIT, dbo.ICLOC.[DESC] AS Location_description, 
                      dbo.ICITEM.[DESC] AS Item_desc, dbo.ICHIST.DOCNUM, dbo.OEINVH.INVNUMBER, dbo.ICHIST.TRANSDATE, dbo.ICHIST.LOCATION, 
                      dbo.ICHIST.TRANSTYPE, dbo.ICHIST.APP
FROM         dbo.ICHIST RIGHT OUTER JOIN
                      dbo.ICITEM ON dbo.ICHIST.ITEMNO = dbo.ICITEM.ITEMNO RIGHT OUTER JOIN
                      dbo.ICLOC ON dbo.ICHIST.LOCATION = dbo.ICLOC.LOCATION LEFT OUTER JOIN
                      dbo.ICUNIT ON dbo.ICHIST.ITEMNO = dbo.ICUNIT.ITEMNO AND dbo.ICHIST.UNIT = dbo.ICUNIT.UNIT LEFT OUTER JOIN
                      dbo.OEINVH ON dbo.ICHIST.DOCNUM = dbo.OEINVH.SHINUMBER
WHERE     (dbo.ICHIST.LOCATION = 10) AND (dbo.ICHIST.TRANSTYPE <> 2)
ORDER BY dbo.ICHIST.TRANSDATE, dbo.ICHIST.DOCNUM
Open in New Window Select All

Answer : SQL Conditional statement noob question about IF statements...

IF is not possible inside a SQL statement, but only as control flow between SQL statements.

what you want is the CASE statement:
1:
CASE WHEN  dbo.ICHIST.TRANSTYPE = 2 AND ICHIST.TRANSDATE < 20070322 then ICHIST.QUANTITY = 0 ELSE ICHIST.QUANTITY END
Open in New Window Select All
Random Solutions  
 
programming4us programming4us