1

早上好。

我目前正在构建一个包含名称、文档类型和到期日期的报告。查询基于文档是否曾被请求 (=yes) 以及个人的角色/职位。遗憾的是,由于数据库的设计方式和用户的使用方式,一个人可能有两个角色(首席协调员/协调员),因此,数据库中有两个单独的条目 (ID)。然而,用户通常只为这些条目之一输入“到期日期”。

因此,现在当我有查询为每个角色收集姓名、文档和到期日期,然后通过联合将它们组合起来时,每个人可能有多个条目,例如:

Smith, John AAA 11-5-2012
Smith, John AAA
Doe, Jane AAA 
Doe, Jane AAA 11-11-2011

有没有办法让我能够保留有更多信息的行?

注意我不想根据“日期<>空”来到期,因为有时我们可能已经请求了文件,但我们还没有收到它来输入到期日期,我们需要能够看到这些数据以备不时之需再次请求。

先感谢您!

4

1 回答 1

0

Max 和 Group By 可能适合:

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;

请注意,您不应按到期日期分组。

于 2012-11-05T16:56:48.623 回答