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

Sql 如何在SSIS的更新查询中编写case语句,sql,sql-server,ssis,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 = CA

如何在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= ?

书写时出现错误,请建议..

这可能对您有所帮助-

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'

有什么问题吗?当然,您可以将该代码粘贴到SSIS包中相应的任务对象中?您是在询问要使用哪个任务吗?我编写的查询如下:UPDATE sacustomer SET salesamt1=CASE WHEN(@janfl='y'),然后?否则salesamt1结束,salesamt2=CASE何时(@janfl='y')结束?否则salesamt2结束,salesamt3=案例何时(@janfl='y')结束?ELSE salesamt3在cono=处结束?和yr=?和divno=?为什么=?和custno=?但给出错误,我不太了解SSIS,但需要为SSIS编写上面的查询..请帮助。[在高级编辑器中编写以更新记录]。看起来一切正常。你在约束这些论点吗?很抱歉,我无法帮助您解决这一问题,因为我已经几个月没有使用SSIS了,所以我记不清了,而且我也无法访问安装了SSIS的系统。所有这些都在的文档中进行了描述。祝你好运是绑定参数..那么需要使用吗?在更新查询中。但获取错误。需要根据标志更新不同的列。并且标志不是表的一部分(不能在where中使用)。需要使用用例,1未修复。是吗?这是参数中的值。如果janflg为真,则有12个标志,然后更新salesamt1、costamt1、qtysold1列。如果为febflg2,则更新salesamt2、costamt2和qtysold2。依此类推。它如何处理所有12个条件?是否对每个条件重复查询?如果是,那么如何进行映射?请提供完整的代码示例。我在我的帖子中修改了代码,也检查了声明参数,这是在SSIS中声明参数的一种写方法。