私は次のようになります。CTE
を持っている:最後の2つを除くすべてを更新しますか?
;with cte as
(
SELECT WeekNum
FROM MonitorTable
GROUP BY WeekNum
HAVING SUM(CASE WHEN IsProcessed = 1 THEN 1
ELSE 0
END) = 8
order by WeekNum
)
update MonitorTable
set ReadToGrid = 0
where WeekNum in (select WeekNum from cte)
ここでの問題は、それがすべてを更新するということです。常に2つの左になければならないので、私は最後のものを除くすべてを更新することができます。
それでは、CTEは、以下を返すことにしましょう:
1
2
3
4
5
6
私はすべてを更新することはできません。最後の2つ(1,2,3,4)を除くすべてを更新する必要があります。
最後の2行以外のすべてを更新するようにスクリプトを変更するにはどうすればよいですか?
ありがとうございました。
変更 'WHERE'条件を? –
WHERE weekNum <=(SELECT MAX(WeekNum)-2 FROM cte) ' – BJones