早上好。
我目前正在构建一个包含名称,文档类型和到期日期的报告。查询基于是否曾请求过文档(=是)以及个人的角色/职位。遗憾的是,由于数据库的设计方式以及用户如何使用数据库,一个人可能有两个角色(首席协调员/协调员),因此,数据库中有两个单独的条目(ID)。但是,用户通常只在其中一个条目的“到期日期”中输入。
因此,现在当我收集每个角色的名称,文档和到期日期的查询,然后通过Union组合它们时,每个人可能会有多个条目,例如:
Smith, John AAA 11-5-2012
Smith, John AAA
Doe, Jane AAA
Doe, Jane AAA 11-11-2011
有没有办法让我能够保留包含更多信息的行?
注意我不希望基于“Date<> Null”来支付它,因为有时我们可能已经请求了该文档,但我们还没有收到它以进入到期日期我们如果我们需要再次请求,我们需要能够看到这些数据。
提前谢谢!
答案 0 :(得分:0)
Max和Group By可能适合:
SELECT Docs.Person, Docs.Doc, Max(Docs.DateEntered) AS MaxOfDateEntered
FROM Docs
GROUP BY Docs.Person, Docs.Doc;
文档是您的表或查询的名称。
输入:
Person Doc DateEntered
Smith,John AAA 11-5-2012
Smith,John AAA
Doe,Jane AAA
Doe,Jane AAA
结果:
Person Doc MaxOfDateEntered
Doe,Jane AAA
Smith,John AAA 11-5-2012
编辑重新评论
SELECT doc.Name, doc.Site, doc.Document, Max(doc.Expr1003) AS MaxOfExpr1003
FROM doc
GROUP BY doc.Name, doc.Site, doc.Document;
编辑评论#2
SELECT
ResultsTbl.Name,
ResultsTbl.Site,
ResultsTbl.Document,
Max(ResultsTbl.Expiration_Date) AS Expiration_Date
FROM (
SELECT
lname & ', ' & fname AS Name,
site_name AS Site,
Document, cv_request_expires_on AS Expiration_Date
FROM Coord_CV_Expiration
UNION SELECT
lname & ', ' & fname AS Name,
site_name AS Site,
Document,
cv_request_expires_on AS Expiration_Date
FROM LeadCoord_CV_Expiration ...) AS ResultsTbl
GROUP BY ResultsTbl.Site, ResultsTbl.Document, ResultsTbl.Name
ORDER BY ResultsTbl.Expiration_Date;
请注意,您不应该按到期日分组。