Sql 如何在SSIS的更新查询中编写case语句
如何在SSIS中编写以下更新查询: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
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中声明参数的一种写方法。