2016-04-25 8 views
1

私はいくつかのデータクレンジングに取り組んでいるインターンであり、私が取り組んでいるデータのいくつかでは困っています。MicrosoftAccess/Excel:あるテーブルのフィールドが一致している場合、別のテーブルのフィールドと一致するように1つのテーブルのフィールドを更新するにはどうすればよいですか?

1つのテーブルから新しいテーブルに一致するシリアル番号と部品番号を移動しようとしていますが、他の2つのフィールドがテーブル全体で一致している場合に限ります。

基本的には:

I want [GPFixedAsset].[OasisPar] to update to [OasisFixedAssets].[PartNumber] 
if [GPFixedAsset].[OasisLink] = [OasisFixedAssets].[SysIDOasis] 

とシリアル番号の同じ:

[GPFixedAsset].[OasisSer] to update to [OasisFixedAssets].[SerialNumber] 
if [GPFixedAsset].[OasisLink] = [OasisFixedAssets].[SysIDOasis]. 

私はまだSQLを習得しようとしているが、それは今少し混乱です。

Excelで式を使って行うことができます。しかし、テーブルを更新するために別々のクエリを2回実行することができれば、それをExcelにエクスポートして素晴らしいものにすることができます。

編集:
回答ありがとうございます。私はOasiLinkとSysIDOasisの間でマッチしたすべてのフィールドを見つけるために選択クエリを実行して並べ替えを終え、その後、そのクエリに基づいて個別の更新クエリを実行してフィールドを正しい値に更新しました。

+0

、それがお役に立てば幸いです。 ExcelでVBAを使用し、AccessでSQLを使用することは間違いありません。あなたは何を探していますか? – Spidey

答えて

0

SQLフォーマット:

残念ながら私は答えを使用する必要がありますが、私はSQLを介してこれを実現するためにVariablesCursorを使用することをお勧めしそうコメントすることはできません。

Cursorは、各行を1つずつ読み取るループです。カーソル内では、値を変数に保存して比較することができます。彼らは更新スクリプトを実行し、その後一致する場合:

DECLARE @Value1 = NVARCHAR(50) 
DECLARE @Value2 = NVARCHAR(50) 

にカーソルを経てたびに、それはそれぞれの値

を更新してしまうので、更新文が

Update [GPFixedAsset] 
Set [OasisPar] = @Value1 
Where @Value1 = Value2 

ようなものになるだろう私がしなければなりませんでしたこれは私がやった最善の方法ですので、先日何か似たようなことをしてください。

はまた、Excelの数式を使用して可能であるかもしれない、それだけで別の1つの場所から値をコピー参照として機能していないでしょうサム

関連する問題