SQL Server管理Studio 2012是我正在使用的。總結一下,我想一次執行幾個命令。我是一名.NET開發人員,所以我認爲就if和elses而言。SQL - 基於臨時表數據集更改列值
我在[表資料]這樣的原始數據:
ID | Code 1 | Code 2 | Type Code | From Date | Thru Date | Adj Code | Final
1 | 2001 | 9982 | 10 | 2015-01-13| 2015-01-13| 0 | Y
2 | 2001 | 9982 | 10 | 2015-01-13| 2015-01-13| 1 | N
3 | 2001 | 9982 | 10 | 2015-01-13| 2015-01-24| 2 | Y
4 | 2001 | 2653 | 40 | 2014-12-29| 2014-12-29| 0 | Y
5 | 2001 | 2653 | 40 | 2014-12-29| 2014-12-29| 1 | N
我插入的數據從表資料到稱爲TempData的一個臨時表,其中AdjCode = 1
TMP表[TempData的]數據:
ID | Code 1 | Code 2 | Type Code | From Date | Thru Date | Adj Code
1 | 2001 | 9982 | 10 | 2015-01-13| 2015-01-13| 1
2 | 2001 | 2653 | 40 | 2014-12-29| 2013-12-29| 1
我想通過[Type Code]檢查TempData中的每一行。
如果[類型代碼]是'10',那麼我想在TableData上做一個新的選擇,其中TempData的[代碼1],[代碼2],[類型代碼]和[從日期]列匹配。
看起來應該像這樣:
ID | Code 1 | Code 2 | Type Code | From Date | Thru Date | Adj Code | Final
1 | 2001 | 9982 | 10 | 2015-01-13| 2015-01-13| 0 | Y
2 | 2001 | 9982 | 10 | 2015-01-13| 2015-01-24| 2 | Y
然後基於關閉此記錄,如果有一個[ADJ代碼]與「2」我想更新相應的資料表上的[決賽]列「Y」。同樣,如果[Adj Code] = 0,我將更新匹配TableData的匹配記錄,並將[N]替換爲[Final]列'N'。
如果[類型代碼]不是'10'另一個在這種情況下'40'),我想要做同樣的過程,除了添加[Thru Date]以及...看起來像這樣: 選擇TableData其中TempData的[代碼1],[代碼2], [類型代碼]和[從日期]和[直到日期]列匹配。
看起來應該像這樣的:
ID | Code 1 | Code 2 | Type Code | From Date | Thru Date | Adj Code | Final
1 | 2001 | 2653 | 40 | 2014-12-29| 2014-12-29| 0 | Y
2 | 2001 | 2653 | 40 | 2014-12-29| 2014-12-29| 1 | N
我希望這個心不是太混亂了......我很樂意提供更多的信息,因爲我需要完成這個在工作中的一個項目儘快。謝謝。
請顯示您的Sql。您必須爲此編寫存儲過程。祝你好運 – Hiten004
我沒有寫任何sql。 – tshoemake
我通過使用嵌套遊標解決了這個問題。 http://stackoverflow.com/questions/469019/cursor-inside-cursor – tshoemake