【问题标题】:perform an update query for over 200 items对 200 多个项目执行更新查询
【发布时间】:2016-05-10 05:01:32
【问题描述】:

在访问中,我有一个更新功能,我可以一次更新库存数据库 1 中的信息。我输入项目名称,然后我可以更新成本和日期。

有没有办法编写一个 sql 查询来执行 200 个唯一项的更新?

编辑:

我有

|ITEM NAME|ITEM COST|DATE CHANGE|
|A        |$2.00    |1/1/1111   |
|B        |$3.50    |1/2/1111   |
|C        |$4.50    |1/3/1111   |

假设有 200 多个商品名称,我想运行查询以保留商品名称但更新价格和日期

|ITEM NAME|ITEM COST|DATE CHANGE|
|A        |$3.00    |1/4/1111   |
|B        |$1.50    |1/5/1111   |
|C        |$84.50   |1/6/1111   |

我觉得唯一的办法就是只进行一次长时间的更新,但我不知道是否有更好的办法。

【问题讨论】:

  • 我将编辑我的问题
  • 您必须有一些新信息的数据源 - 如果它在第二个表中(或者如果您可以将其放入表中),您应该能够将现有表加入更新项目名称字段上的表,然后使其成为更新查询以更改相应的项目。任何不在更新表上的现有项目将保持原样。
  • 没错,我只是更改了费用和日期,项目名称保持不变。

标签: sql ms-access


【解决方案1】:

我不确定你的意思是不是有重复的行。但我希望这可以通过使用 SQL 中的 DISTINCT 关键字来帮助。因此,如果您要编写更新 sql 查询,它将是这样的:

UPDATE Accomodation
   SET AccomodationName = "YourChoice"
 WHERE AccomodationPrice = (SELECT DISTINCT AccomodationPrice 
                            FROM Accomodation)

有关 distinct 的更多信息,您可以查看here

【讨论】:

    【解决方案2】:

    使用一个名为 Inventory 的数据表和另一个表 Updates,具有相同的结构,包含大约 200 个更改,更新看起来像

    UPDATE Inventory INNER JOIN Updates ON Inventory.[Item Name] = Updates.[Item Name] SET Inventory.[Item Cost] = [updates].[item cost], Inventory.[Date Change] = [updates].[date change];
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-04
      • 1970-01-01
      • 2018-02-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多