2013-03-13 53 views
2

我有一個表,其中包含以下字段:ID_Observation(PK),ID_GradingID_ObKind,Data基於同一表的SQL Server 2005更新查詢

我很難編寫查詢來更新基於表內其他行的某些行。

如果ID_ObKind = 9,Data =需要更新到數據,其具有與ID_ObKind = 10和Data = NULL相同ID_Grading「否」,那麼任何行= 0

我有大約十幾個不同的情況其中數據需要根據特定ID_ObKind的數據值進行更改,因此需要指出這一點。每個ID_Grading最多可以有120行,每個都有不同的ID_ObKind

回答

1

我認爲這會對你有用。 http://sqlfiddle.com/#!3/2eeaf/14

Update TheTable 
    set data=0 
where id_grading = (select id_grading 
         from TheTable 
         where id_obkind=9 
         and data='No') 
    and id_obkind=10 
    and data is null 
+0

我可以問一個關於這個表的問題,因爲它對我來說似乎並不高效。爲每個觀察添加一行,並將任何類型的數據存入數據列,無論是文本,整數還是浮點數。在網頁上有驗證,以防止觀察類型錯誤的類型。必須使用樞軸將所有行輸出到列中。將數據庫設置爲控制每列正確數據類型的列而不是將其留給客戶端會不會更容易?不需要樞軸和查詢會更簡單?我剛剛繼承了這個數據庫並試圖理解它。 – user2165345 2013-03-14 10:25:20