早上好。
我目前正在构建一个以名称、文档类型和过期日期为特征的报告。查询基于文档是否被请求(=是)和个人的角色/位置。遗憾的是,由于数据库是如何设计的以及用户如何使用数据库,一个人可能有两个角色(牵头协调员/协调员),因此在数据库中有两个单独的条目(ID)。然而,用户通常只输入其中一个条目的“截止日期”。
因此,现在当我有查询收集每个角色的名称、文档和终止日期,然后通过Union组合它们时,每个人可能会有多个条目,例如:
Smith, John AAA 11-5-2012
Smith, John AAA
Doe, Jane AAA
Doe, Jane AAA 11-11-2011是否有一种方法可以保留有更多信息的行?
注意,我不想基于"Date <> Null“来提交它,因为有时我们可能已经请求了文档,但是我们还没有收到它,所以我们还没有收到它,并且我们需要能够看到这些数据,以防我们需要再次请求它。
提前谢谢你!
发布于 2012-11-05 16:56:48
Max和Group可能适合:
SELECT Docs.Person, Docs.Doc, Max(Docs.DateEntered) AS MaxOfDateEntered
FROM Docs
GROUP BY Docs.Person, Docs.Doc;其中Docs是表或查询的名称。
输入:
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;请注意,不应按终止日期分组。
https://stackoverflow.com/questions/13236643
复制相似问题