SQL(访问):每个“ID”多个值 - 存储为TRUE,除非任何FALSE

时间:2012-10-31 19:45:00

标签: sql ms-access

下午好! 我最近遇到了一个问题,我希望可以在你的帮助下解决。我们的系统[遗憾]在Access(2007)上运行。我有很好的SQL经验,并选择在大多数查询中使用此方法而不是设计视图。但是,这是我最近遇到的问题:

表(当然有自己的主键)包含ParticipantID和Records。由于在不同位置发生事件,该表可能包含每人多个记录。通过这些信息,我们可以跟踪每条记录是否已经在我们的系统中,因为该位置属于我们的大型"保护伞。 (内部)。为了使它看起来简单,它看起来像这样,忽略了主键,因为我们只关心参与者ID。

ParticipantID     Internal
1                 -1
1                 -1
2                 0
3                 -1
3                 -1
3                 0
4                 -1
4                 0

我希望能够说出参与者的任何记录不是内部的(例如= 0),然后在此查询的结果中,将其存储为0。 因此,结果表看起来像:

ParticipantID     Internal
1                 -1
2                 0
3                 0
4                 0

这有意义吗?先感谢您!

2 个答案:

答案 0 :(得分:2)

您可以使用Max:

SELECT internal.ParticipantID, Max(internal.Internal) AS MaxOfInternal
FROM internal
GROUP BY internal.ParticipantID;

我使用查询设计窗口构建了上述内容。

答案 1 :(得分:0)

如果内部值只能为0和-1,则以下内容可能有帮助

Select ParticipantID,max(internal) from thetable
Group by ParticipantID