代码之家  ›  专栏  ›  技术社区  ›  DGM

比较嵌套select值与master select中的值

  •  0
  • DGM  · 技术社区  · 15 年前

    在MS Access中,我有一个查询,我希望使用外部查询中的列作为内部查询中的条件:

    SELECT P.FirstName, P.LastName, Count(A.attendance_date) AS CountOfattendance_date,
           First(A.attendance_date) AS FirstOfattendance_date,
           (SELECT COUNT (*) 
              FROM(SELECT DISTINCT attendance_date 
                    FROM tblEventAttendance AS B 
                    WHERE B.event_id=8 
                      AND B.attendance_date >= FirstOfattendance_date)
           ) AS total
    FROM tblPeople AS P INNER JOIN tblEventAttendance AS A ON P.ID = A.people_id
    WHERE A.event_id=8
    GROUP BY P.FirstName, P.LastName
    ;
    

    关键是 FirstOfattendance_date -我希望嵌套select中的比较能够在主select的每次迭代中使用该值。显然这不起作用,它要求我 第一次出席日期 当我试图运行它时。

    我不想求助于VB代码…有什么想法吗?

    2 回复  |  直到 15 年前
        1
  •  1
  •   Fionnuala    15 年前

    怎么样:

    SELECT 
         p.FirstName,
         p.LastName,
         Count(a.attendance_date) AS CountOfattendance_date,
         First(a.attendance_date) AS FirstOfattendance_date,
         c.total
    FROM (
         tblPeople AS p 
    INNER JOIN tblEventAttendance AS a ON 
         a.people_id = p.ID) 
    INNER JOIN (SELECT people_id, Count (attendance_date) As total
                FROM (
                    SELECT DISTINCT people_id,attendance_date
                    FROM tblEventAttendance) 
                Group By people_id) AS c ON 
         p.ID = c.people_id
    GROUP BY 
         p.ID, c.total;
    
        2
  •  0
  •   rday    15 年前

    你能改变吗?

    b.出席日期>=第一次出席日期

    B.出勤日期>=第一个(A.出勤日期)