【问题标题】:Update query based on two conditions根据两个条件更新查询
【发布时间】:2013-12-19 21:18:11
【问题描述】:

我有基于此查询的下表:

SELECT
    repName.repID, repName.Rep_Name, repName.Job_Code, GenItems.Item_Name,
    repName.Entered
FROM
    GenItems
    INNER JOIN repName
        ON GenItems.Job_Code = repName.Job_Code
ORDER BY
    repName.Rep_Name

我想向它添加一个更新例程。如果用户条目与 rep.ID 和项目名称匹配,我想更新输入的字段。最后返回输入字段的最大值。我可以将此添加到此查询中还是写另一个更好。

我刚开始使用 sql,所以如果我的问题看起来很基础,请原谅我。我是自学成才的,经常磕磕绊绊。

谢谢

【问题讨论】:

  • 您希望输入的字段更新为什么?
  • 您使用的是什么数据库系统?什么版本?
  • @aledpardo 我正在使用 sqlCE

标签: sql sql-server-ce


【解决方案1】:

我不完全理解你的问题。

您正在向我们展示一个 SELECT 语句。它只能用于返回类似表格的结果。如果要更新表,则必须使用 UPDATE 查询。对于 SQL-Server(和 SQL CE),查询如下所示:

UPDATE repName
SET repName.Entered = x
FROM
    GenItems
    INNER JOIN repName
        ON GenItems.Job_Code = repName.Job_Code
WHERE
    repName.repID = x AND GenItems.Item_Name = 'y'

困难在于表必须在 UPDATE 语句中连接。例如,这在 Oracle 中不支持,您必须使用子选择来完成。

【讨论】:

  • 我使用了 select 语句,因为我的数据在那两个表上。 repname 表包含我所有员工的姓名,items 表包含他们负责的项目。所以我想链接这两个表,以便在将员工和项目名称添加到数据库时只需输入一次。
  • 由于员工和项目之间存在一对一的关系,因此几乎不可能同时输入两者。应用程序通常会显示员工列表。用户可以从列表中选择一名员工,然后以另一种形式将其打开,其中有员工姓名字段和项目列表。
猜你喜欢
  • 2012-07-13
  • 1970-01-01
  • 2020-06-25
  • 2022-12-03
  • 1970-01-01
  • 2021-05-02
  • 2015-11-16
  • 2013-01-21
  • 1970-01-01
相关资源
最近更新 更多