我正在处理一个查询,它困扰着我。访问查询帮助(查询查询)
我有一张有很多提案的表格,他们有一个创建日期,当提案被添加到数据库。我想基于用户选择状态进行查询,然后查询只显示最近创建的提议。
例如:
我有4个建议。 2013年1月1日和2013年2月1日创建的2个特拉华。另外两项建议来自马里兰州于2013年3月1日和2014年1月1日创建。如果用户输入特拉华州,那么它应该在2013年2月1日显示提案,但如果用户输入马里兰州,则应在2013年4月1日显示提案。
首先,我想这
SELECT *
FROM Opportunity
WHERE (((Opportunity.CreationDate)=
(select max(Opportunity.CreationDate) from Opportunity)));
这个工作,它让我有最新的日期1分的机会。所以,这是战斗的一半。但是当我试图指定一个状态是我有麻烦的地方。这是访问,所以我想创建一个查询,会提示用户的状态,然后进入第二个查询,将查询最大日期字段的结果将工作,但它没有。 所以,我现在拥有的是:
查询1
Select * FROM Opportunity
,它有一个弹出框出现要求为国家的用户。然后显示该州的所有结果。
查询2
SELECT * FROM OpportunityByState WHERE (((OpportunityByState.CreationDate)=(select max(Opportunity.CreationDate) from Opportunity)));
注:我编辑了SQL张贴在这里使用的所有字段号(*),因为访问写了每场前,有关于他们的60,所以我没别以为任何人都会想看到那段文字。
任何建议将是伟大的,我希望我提供了足够的信息。
减少所提及的重复项的一种简单(但不是保证)的方法是在CreationDate字段中存储日期和时间。然后,如果在同一日期和时间保存了两个或更多提案,则只会有重复。技术上可行,但不太可能。 – PowerUser
谢谢@PowerUser。我想如果这被认为是对当前数据库的过于戏剧性的改变,那么可以创建一个额外的列来分别存储时间,并且日期和时间可以是在特定查询中需要的计算字段。 (只要时间包含在输出中,并且与创建日期一起对排序的DESC进行排序,则计算/添加可能不是必需的。) –