如何在SSIS中的更新查询中编写case语句

时间:2013-06-04 10:00:35

标签: sql sql-server ssis

如何在SSIS中编写以下更新查询:

 declare @janflag as varchar(56) 
 set @janflag ='y' 
 declare @febflag as varchar(56) 
 set @febflag ='y'/[ SELECT TOP 1 febfl FROM saupdate ]   
      * saupdate table in the control flow.
 UPDATE  sacustomer 
 SET  salesamt1 = CASE WHEN (@janflag='y') THEN ? ELSE salesamt1 END ,
 costamt1 = CASE WHEN (@janflag='y') THEN ? ELSE costamt1 END ,
 qtysold1 = CASE WHEN (@janflag='y') THEN ? ELSE qtysold1 END ,

 salesamt2 = CASE WHEN (@febflag ='y') THEN ? ELSE salesamt1 END ,
 costamt2 = CASE WHEN (@febflag ='y') THEN ? ELSE costamt1 END ,
 qtysold2 = CASE WHEN (@febflag ='y') THEN ? ELSE qtysold1 END 

 where cono=? 
 and yr=?    
 and divno= ? 
 and whse= ?
 and custno= ?

写作时出错,请建议..

1 个答案:

答案 0 :(得分:0)

这可能对你有所帮助 -

DECLARE @janflag VARCHAR(56) 
SELECT @janflag = 'y' 

UPDATE dbo.sacustomer
SET     
      salesamt1 = 1
    , costamt1 = 1
    , qtysold1 = 1
WHERE cono = '10'
    AND custno = '900'
    AND @janflag = 'y'