不幸的是,我认为我可以应用的解决方案非常有限。我这样做是为了工作,我只有权通过Access 2010从表中进行SELECT。我无法更新或创建表。我找不到有用的信息,例如后端的sql版本,更不用说直接访问数据库或使用VBA。
假设我们有这样的数据集(看起来粗糙,对不起):
MemberID | StatusCd | Date Added
12345 | 200 | 08/01/2016
12345 | 300 | 09/01/2016
12345 | 400 | 10/01/2016
5646 | 400 | 10/01/2016
8946 | 100 | 07/01/2016
现在,这个数据库非常庞大,如果我试图拉动表中的所有成员并在之后处理它,那将是一个巨大的性能问题。我想要的是返回共享MemberID的所有行,其中该MemberID的至少一行是StatusCd 300.例如,如果我想要有关命中状态300的成员的信息,那么所需的表将如下所示:
MemberID | StatusCd | Date Added
12345 | 200 | 08/01/2016
12345 | 300 | 09/01/2016
12345 | 400 | 10/01/2016
但是,现在当我尝试使用使用WHERE StatusCd = 300的SELECT命令时,我只得到满足该条件的一行。我不知道它是否会干扰任何事情,但我目前正在将此表加入到memberID上的另一个表中,以获得更小,更相关的表集。省略StatusCd 300之前的行也是一件好事,但这只是一小部分额外数据,不会让他们受到太多伤害。
感谢任何人提供的任何帮助!
编辑:根据评论反馈调整短语。
答案 0 :(得分:0)
要获取至少有一行statuscd
为300的成员的所有行,请先使用子查询选择所有相应的memberid
,然后从memberid
中选择所有行表:
select *
from t
where memberid in (
select memberid from t where statuscd = 300
)