1

おはようございます。

現在、名前、ドキュメントタイプ、および有効期限を特徴とするレポートを作成しています。クエリは、ドキュメントがこれまでに要求されたかどうか(= yes)と個人の役割/位置に基づいています。残念ながら、データベースの設計方法とユーザーの使用方法により、人は2つの役割(リードコーディネーター/コーディネーター)を持ち、データベース内に2つの別個のエントリ(ID)を持つ場合があります。ただし、ユーザーは多くの場合、これらのエントリの1つに対して「有効期限」のみを入力しています。

したがって、各役割の名前、ドキュメント、および有効期限を収集し、Unionを介してそれらを組み合わせるクエリがある場合、次のように1人あたり複数のエントリが存在する可能性があります。

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 に答える