繁体   English   中英

SQL 如何检查行中是否在特定等级的表中包含该数据,以及是否在具有该字段名称的另一个表中放置了 Y

[英]SQL how do I Check to see if row has that data in table with on a specific grade, and if it does put a Y in another table with that field name

你好这是我的问题,

只需从表 1 中取出 2 列,然后比较等级,以及 CHEM 字段中存在的元素,然后如果它存在于相应的元素字段中,则将其放置为 Y。 我不知道如何在 SQL 中做,下面是一个例子。

在 SQL 中:

表格1:

年级 化学
A30134 AL
AS0134 CR
AS3021
AS3011 CR

表 2:

年级 AL CR
A30134
AS3021
AS3011

所以基本上,只需从表 1 中取出 2 列,比较等级,以及 CHEM 字段中存在的元素,然后如果它存在于相应的元素字段中,则将其放置为 Y。

UPDATE Table1 INNER JOIN 
Table2
(ON Table1.Grade =  Table2.Grade) AND (ON I'm not sure how I indicate check field compared to a data cell)
SET Table1.AL = Y;

也许最简单的方法是相关子查询:

UPDATE Table1 
    SET Table1.AL = IIF(EXISTS (SELECT 1 FROM Table2 WHERE Table1.Grade = Table2.Grade AND Table2.Chem = "AL"), "Y", NULL),
        Table1.CR = IIF(EXISTS (SELECT 1 FROM Table2 WHERE Table1.Grade = Table2.Grade AND Table2.Chem = "CR"), "Y", NULL),
        Table1.MO = IIF(EXISTS (SELECT 1 FROM Table2 WHERE Table1.Grade = Table2.Grade AND Table2.Chem = "MO"), "Y", NULL);

    

根据您的示例,您可以尝试以下SQL

UPDATE Table1 INNER JOIN Table2 ON Table1.Grade = Table2.Grade SET 
Table2.AL = IIf(DCount("[Grade]","[Table1]","[Grade]='" & table2.Grade & "' AND [Chem]='AL'")>0,"Y",Null), 
Table2.CR = IIf(DCount("[Grade]","[Table1]","[Grade]='" & [table2].[Grade] & "' AND [Chem]='CR'")>0,"Y",Null), 
Table2.MO = IIf(DCount("[Grade]","[Table1]","[Grade]='" & [table2].[Grade] & "' AND [Chem]='MO'")>0,"Y",Null);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM