MS Access:如果至少发生某种情况,请删除所有记录

时间:2018-07-27 11:20:47

标签: ms-access

例如,是否有一种方法可以在电话表中,如果至少一次收到的电话评级低于指定的电话,它们的等级会删除该电话的所有记录?

Company  Rating
Samsung      5
Samsung      2

在该示例中,如果我想摆脱评级至少一次低于3的电话,则必须删除其中所有带有“三星”的记录。

2 个答案:

答案 0 :(得分:2)

您将为此使用子查询,例如:

DELETE * 
FROM YourTable 
WHERE EXISTS (SELECT * FROM YourTable AS tmp WHERE Company = YourTable.Company AND Rating < 3)

答案 1 :(得分:1)

这是解决此问题的一种方法...(如您在WolfgangK的答案中看到的那样,有些方法可以在SQL代码中完成,但是我将使用可视化查询生成器,因为这可能会使您更容易了解您的入门知识。)

首先,这是一个示例数据集。对于我们的问题,我们想删除任何评级为3或以下的电话公司的记录。在此列表中,我们希望删除LG的所有记录,即使其中只有3个记录。

enter image description here

如果我们只想删除评级为3或以下的记录,那将很容易。我们只需要这样的删除查询即可:

enter image description here

但是,在您的情况下,即使只有某些符合条件,您仍要删除该公司的所有记录。没问题,只是稍微复杂一点。我们首先需要确定符合条件的公司。让我们创建一个名为 qryBadReviews 的新查询:

它与我们的删除查询非常相似,但也在结果中列出了公司名称。 (如果我们只想查看一次列出的公司名称,也可以将其分组。)

enter image description here

enter image description here

现在,下一步是创建我们的删除查询,该查询链接到具有匹配公司名称的不良评论查询。很简单,但是我们遇到了一个问题:

enter image description here

要解决此问题,您只需要在查询中将“唯一记录”属性更改为Yes,然后它将为您运行。

enter image description here

enter image description here

以及得到的数据集:

enter image description here

对不起,LG,这只是一个例子!我喜欢你的电话。 :-)

相关问题