2016-08-01 9 views
1

私は通常Oracleで作業します。このようなクエリは非常に簡単です。私は私の脳を捜した。基本的には、コメントの事前記録の最大識別子を取得することです。OracleからSQL Serverへのクエリ

は、オラクルでは、私は基本的にレコード番号が連続している。この

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対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- on-a-public-forum / – TheGameiswar

関連する問題