0
我遇到了複雜的情況。我搜索了所有的博客,但找不到任何接近我的期望的答案。我運行下面的查詢:SQL有條件地更新每一行
**Table1 Table2**
**ID Status RptGChng RptAChng RptRChng | ID Status**
8614 Green 0 0 0 | 8614 Red
8548 Unknown 0 0 0 | 8548 Amber
2591 Amber 0 0 0 | 2591 Amber
7813 Green 0 0 0 | 7813 Green
8413 Red 0 0 0 | 8413 Red
8183 Green 0 0 0 | 8183 Green
7431 Red 0 0 0 | 7431 Red
7399 Green 0 0 0 | 7399 Red
7776 Unknown 0 0 0 | 7776 Unknown
8609 Green 0 0 0 | 8609 Green
8068 Green 0 0 0 | 8068 Green
的RptGChng應該給我1的值,如果出現了從表1至表2的id綠色值的變化。我需要以這種方式填充RptAChng - > Amber和RptRChng - > Red。 ,我寫在這抵達的代碼如下:
set [RptGChng] =
IIF(([Status]='Green'),1,0)-
IIF(([Status]=(
SELECT b.[Status] FROM [Table1] a INNER JOIN [Table2] b ON
a.[id]= b.[id] and b.[Status]='Green')),1,0)
我對你理解這個問題的能力印象深刻。 – 2014-12-27 18:42:24
我使用了@ M.Ali編寫的第二個代碼,但我得到的多部分標識符列無法綁定。我不得不做一個小小的調整,並修復它。 UPDATE t1 SET RptGChng = IIF(t1。[Status] ='Green'AND t1。[Status] <> t2。[Status],1,t1.RptGChng) ,RptAChng = IIF(t1。[Status] =' [Status] <> t2。[Status],1,t1.RptAChng) ,RptRChng = IIF(t1。[Status] ='RED'AND t1。[Status] <> t2。[Status] ,1,t1.RptRCngng) FROM Table1 t1 INNER JOIN Table2 t2 ON t1。[id] = t2。[id] – SKP 2014-12-28 06:06:40