我正在使用MS-Access 2013.我需要将值插入表中,表中的某些值将是其他表中的ID号。我将插入一个IMEI号码,然后下一列将是来自不同表格的ID号码。此ID号来自包含不同设备的所有品牌和型号的表。该表如下所示:
ID Number | IMEI | Model ID
1 | 1122334455 | 565
2 | 2222555555 | 400
3 | 9999944444 | 309
Model表格如下:
Model ID | Make | Model
565 | Apple | iPhone 6
400 | Samsung | Galaxy S4
309 | HTC | One M8
有很多品牌和型号,所以查找每个插页的模型ID是不现实的。
到目前为止我所尝试的是:
INSERT INTO Device (IMEI, [Model ID])
SELECT [Enter IMEI], [Model Table].[Model ID]
FROM [Model Table]
WHERE [Enter Make]=[Model Table].Make AND [Enter Model]=[Model Table].Model
只要Make和Model已经存在,这就有效。但是,如果它们不存在,则不会插入查询。这就是我陷入困境的地方。任何帮助都会受到高度赞赏,甚至是正确的方向。
答案 0 :(得分:0)
检查Make / Model是否存在,如果是,则插入IMEI和模型,如果不是仅插入IMEI
DECLARE @IMEI NVARCHAR(50)
DECLARE @MODEL NVARCHAR(100)
DECLARE @MAKE NVARCHAR(100)
SET @IMEI = '97658769'
SET @MAKE = NULL
SET @MODEL = NULL
IF EXISTS
(
SELECT 1 from [Model Table]
WHERE [Model Table].Make = @MAKE
AND [Model Table].Model = @MODEL
)
BEGIN
INSERT INTO Device (IMEI, [Model ID])
VALUES (@IMEI, @MODEL)
END
ELSE
BEGIN
INSERT INTO Device (IMEI, [Model ID])
VALUES (@IMEI, NULL)
END