2016-10-19 74 views
0

我看到很多關於基於其他列或表更新列的問題,但還沒有看到有關基於同一列但不同行進行更新的答案。根據同一列的值更新行值

數據佈局與此類似:

Data

我需要一個「Y」添加到關閉列在它下面的行有一個「Y」,在封閉的任何行柱。

因此,在這個例子中,序列400將在閉列中得到一個「Y」,因爲它下面的行有一個「Y」。

這隻適用於包含相同作業編號的行。

(背景)當人們忘記關閉序列並導致系統中出現大量假開放序列時,會發生這種情況。我們沉悶地關閉它們,但是一個SQL解決方案將是最好的。

+0

您需要定義「下方」。根據定義,表格是無序集合。使用Sequence列來定義順序是否安全? –

回答

0

因爲沒有提供很多信息,所以在這裏猜測。順便說一句,你應該避免使用保留字作爲列名。像Sequence這樣的東西不適合列名。

像這樣的東西應該接近。

Update yt 
set Closed = 'Y' 
from YourTable yt 
where yt.[Sequence] < (select max(Sequence) from YourTable yt2 where yt2.JobNumber = yt.JobNumber and Closed = 'Y') 
+0

謝謝,這是我第一次問一個問題,所以我不確定要提供多少具體細節。我更期待從中完成它的一般方法,並從那裏開展工作。 非常感謝,我會給它一個鏡頭。 – Zarto

+0

問題是,我正在使用Pervasive Control Center來訪問數據庫,並且我不知道如何將網格圖像轉換爲圖像文件以供上載。這就是爲什麼我在Excel中製作一個簡單/基本的副本來說明我正在嘗試做什麼。 – Zarto

+0

更新YT 組FLAG_CLOSED = 'Y' FROM Job_Operations WHERE yt.SEQ <(SELECT MAX(SEQ)FROM JOB_OPERATIONS YT2 WHERE yt2.Job = yt.Job和Flag_Closed = 'Y' – Zarto

相關問題