返回下一个客户访问日期

时间:2015-01-24 15:02:25

标签: ms-access ms-access-2007

我在上次访问日期时有一张独特客户的表格。我有另一个历史表,其中包含他们所有的访问以及预订的任何未来日期。我需要能够在他们上次访问后返回下一个访问日期。

有人可以提供帮助,因为我遇到的问题是有些客户预订的未来日期不止一个。

2 个答案:

答案 0 :(得分:1)

这些方面的某些内容可能适合:

SELECT cv.CustomerId, cv.LastVisit, 
      (SELECT TOP 1 h.Visitdate 
       FROM History h 
       WHERE h.Visitdate>cv.LastVisit  AND h.CustomerId = cv.CustomerId 
       ORDER BY h.VisitDate) AS NextVisit
FROM CustomerVisits cv

答案 1 :(得分:1)

创建一个查询,该查询为您提供其访问日期比客户更新的历史表行。上次访问。

SELECT
    c.CustomerID,
    h.VisitDate
FROM
    CustomerVisits AS c
    INNER JOIN History AS h
    ON c.CustomerID = h.CustomerID
WHERE h.VisitDate > c.LastVisit;

如果您的工作正常,可以将其用作GROUP BY查询中的子查询,在该查询中,您可以检索每个客户的最短访问日期。

SELECT
    sub.CustomerID,
    Min(sub.VisitDate) AS next_visit
FROM
    (
        SELECT
            c.CustomerID,
            h.VisitDate
        FROM
            CustomerVisits AS c
            INNER JOIN History AS h
            ON c.CustomerID = h.CustomerID
        WHERE h.VisitDate > c.LastVisit
    ) AS sub
GROUP BY sub.CustomerID;