【问题标题】:Insert values into a table with values from another table MS Access将值插入到具有来自另一个表 MS Access 的值的表中
【发布时间】:2015-04-18 06:06:04
【问题描述】:

我使用的是 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

只要品牌和型号已经存在,此方法就可以使用。但是,如果它们不存在,查询将不会插入。这是我卡住的地方。任何帮助将不胜感激,甚至是正确方向的一点。

【问题讨论】:

  • 那么,如果品牌和型号不存在,你只想插入没有品牌和型号的IMEI?

标签: sql ms-access vba


【解决方案1】:

检查品牌/型号是否存在,如果存在,插入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

【讨论】:

    猜你喜欢
    • 2021-01-02
    • 2017-03-30
    • 2011-02-15
    • 1970-01-01
    • 2020-01-30
    • 1970-01-01
    • 2012-03-06
    • 1970-01-01
    相关资源
    最近更新 更多