2016-06-21 15 views
0

MS Access 2016データベースがあります。私たちは、在庫の一部を見つけるためにDBに問い合わせました。クエリ結果の最初の数行は以下のとおりです。元のテーブルにあるすべてのレコードの一意の番号を持つDBIDというプライマリキーがあります。新しいレコードを変更してAccessデータベースに追加する

元のクエリ:

SELECT [Slash Series Query].BRAND, [Slash Series Query].[PRODUCT ID], [Slash Series Query].[STOCK QUANTITY] FROM [Slash Series Query] WHERE ((([Slash Series Query].[PRODUCT ID]) Not Like "k")); 

結果:

Slash Straight Bore Query 

BRAND PRODUCT ID 
FAG 230/500 BMB H14C W33 
SKF 230/500 CA C08 W509 
ZKL 230/500 MW33 
KOY 230/500 RW513 SOFY 
KOY 230/500R W33 C3 FY 
FAG 230/530 MBR50150H78CW209C 
FAG 230/530 C3 H40AC 
NSK 230/530CAM E4 C3 S11 
FAG 230/600 BM C3 W33 T52BW 
FAG 230/600 C08W503 
SKF 230/600 CA C08 W509 
FAG 239/530 MBH40.T52BW 
FAG 239/530MB 
SKF 248/530 CAMA/C3/W20 
TOR 249/850 W33 W45 CW57 C2 

我々は、部品番号の「K」でデータベースに新しいレコードを追加しても追加されます解決策を挿入したいと思います既存の部品番号に加えて、部品番号の末尾に「_(MOD)」、それは次のようになりますので:

(ブランド= 3文字のメーカーコード、プロダクトID =部品番号)

Slash Tapered Bore Query 

BRAND PRODUCT ID 
FAG 230/500 K BMB H14C W33 (MOD) 
SKF 230/500 K CA C08 W509 (MOD) 
ZKL 230/500 K MW33 (MOD) 
KOY 230/500 K RW513 SOFY (MOD) 
KOY 230/500 K R W33 C3 FY (MOD) 
FAG 230/530 K MBR50150H78CW209C (MOD) 
FAG 230/530 K C3 H40AC (MOD) 
NSK 230/530 K CAM E4 C3 S11 (MOD) 
FAG 230/600 K BM C3 W33 T52BW (MOD) 
FAG 230/600 K C08W503 (MOD) 
SKF 230/600 K CA C08 W509 (MOD) 
FAG 239/530 K MBH40.T52BW (MOD) 
FAG 239/530 K MB (MOD) 
SKF 248/530 K CAMA/C3/W20 (MOD) 
TOR 249/850 K W33 W45 CW57 C2 (MOD) 

これを達成する最も効率的な方法は何でしょうか?

+0

質問に既存のクエリを追加できますか? – Ash

+0

SELECT [Slash Series Query] .BRAND、[Slash Series Query]。[製品ID]、[Slash Series Query]。[在庫数量] FROM [Slash Series Query] WHERE(((スラッシュ)クエリ) PRODUCT ID])「* k *」と同じではない))); –

+0

マスタテーブルへの元のクエリ:[スラッシュシリーズクエリ] .BRAND、[スラッシュシリーズクエリ]。[製品ID]、[スラッシュシリーズクエリ] [在庫数量] FROM [Slash Series Query] WHERE( ([Slash Series Query]。[製品ID])「* k *」と同じではない))); –

答えて

0

あなたはMS Accessのサブと連結演算子を試みることができる:私は、クエリのサイズを小さくする代わりに、全体のテーブル名のテーブルの別名を使用しました

SELECT S.BRAND, 
Mid(S.[PRODUCT ID], 1, 7) & " K" & Mid(S.[PRODUCT ID], 8) & " (MOD)" as [PRODUCT ID], 
S.[STOCK QUANTITY] 
FROM [Slash Series Query] S WHERE (S.[PRODUCT ID] Not Like "k"); 

説明:

Mid(columnName, starting char position, [optional last character position]) 

戻り

"a" & "b" & "c"はMSを使用して最後の文字の位置に開始文字位置から列の値の一部(指定されていない場合、文字列の末尾。)指定された場合アクセス連結演算子&とあなただけの値を選択したい場合は​​

0

での結果:

SELECT ssq.BRAND, ssq.[PRODUCT ID], ssq.[STOCK QUANTITY], 
     ("K" & ssq.[PART NUMBER] & " (MOD)") as [PRODUCT ID] 
FROM [Slash Series Query] as ss1q 
WHERE ssq.[PRODUCT ID] Not Like "k"; 

これをデータベースに挿入する場合は、INSERT . . . SELECTを使用します。

+0

別の「PART番号」列はないと思います – Ash

関連する問題