2016-08-01 54 views
1

我通常使用Oracle,並且這樣的查詢將非常容易。我把我的腦子拿出來了。基本上它是獲得以前評論記錄的最大標識符。Oracle到SQL Server查詢

在Oracle我會做一個更新這樣

UPDATE NOTES N1 
SET MASTER_RECORD_NUMBER = 
(SELECT MAX(MASTER_RECORD_NUMBER) 
FROM NOTES N2 
WHERE N1.CUSTOMER_NO = N2.CUSTOMER_NO 
AND N2.MASTER_RECORD_NUMBER < N1.MASTER_RECORD_NUMBER 
AND N2.CODE IS NOT NULL) 
WHERE N1.CODE IS NULL; 

基本上記錄號是連續的,而且代碼不存在,如果它是一個延續。查詢比這個稍長,涉及日期等,但這通常是我正在嘗試做的。

+0

http://stackoverflow.com/questions/2334712/update-from-select-using-sql-server注意TABLE_A是如何 「有些表」 的別名在這個例子中。我在想筆記N1 vs N2是問題 – xQbert

回答

0

試試這個..

UPDATE N1 
SET MASTER_RECORD_NUMBER = 
(SELECT MAX(MASTER_RECORD_NUMBER) 
FROM NOTES N2 
WHERE N1.CUSTOMER_NO = N2.CUSTOMER_NO 
AND N2.MASTER_RECORD_NUMBER < N1.MASTER_RECORD_NUMBER 
AND N2.CODE IS NOT NULL) 
from notes n1 
WHERE N1.CODE IS NULL; 
+1

謝謝。這對我有效。不能相信它是如此相似,但卻引起了我如此的大驚小怪。 –

+0

@MarcPerry:很高興幫助,問題是不清楚,請閱讀此鏈接,以獲得驚人的快速答案..https://spaghettidba.com/2015/04/24/how-to-post-at-sql-question-上一個公開論壇/ – TheGameiswar