仅选择基于先前值的值

时间:2017-10-31 19:33:58

标签: sql-server ssis-2008

我想用SSIS填充表格。当状态列有“取消”时,我只想填充它,只有当它还有另一行具有相同ID并且状态列为"新销售" 。我已经有一些'New sales'行,并且还有'取消'对于我的源表上相同的Id(我也想填充)。所以我不能使用where子句(where status = 'New Sale')。我不想在没有事先'New Sale'

的情况下填充ID

1 个答案:

答案 0 :(得分:0)

您的问题很难准确回答,因为可用的信息很少。我们不知道表名或列名(除了“status”之外),我们也没有任何例子可供查看。因此,解决方案可能是使用EXISTS

select t1.*
from yourtable t1
where exists (
   select NULL
   from yourtable t2
   where t1.orderid = t2.orderid
   and (t1.status = 'cancelled' and t2.status = 'New sales'
     or t2.status = 'cancelled' and t1.status = 'New sales')
   )
and t1.status IN('cancelled','New sales')