【问题标题】:Access flag record when match found in table 2 (one-to-many relationship)在表2中找到匹配时的访问标志记录(一对多关系)
【发布时间】:2014-07-23 16:55:27
【问题描述】:

我有一个带有 tbl_Students 和 tblStudentPrograms 的教育数据库。 tblStudentPrograms 每年 (YearID.) 每个学生和项目 (ProgramID) 都有一条记录。

我需要了解有多少学生参加了 ProgramID=2 EVER。因此,我需要任何 YearID 参与该计划的学生的 DISTINCT 子集。

(当然,通过尝试在其他表(例如 StudentAdvising)中查找其他记录会进一步复杂化,但这将是一个好的开始。)

谢谢!

【问题讨论】:

  • 请发布您遇到问题的代码。

标签: sql unique matching ms-access-2013


【解决方案1】:
SELECT DISTINCT count(studentID) FROM tblStudentPrograms WHERE ProgramID = 2

【讨论】:

  • 好像出了点问题。它给我的计数大于我的 tblStudents 中的学生人数
【解决方案2】:

假设您想要不同数量的学生(不包括同一学生可能参加过两次课程的学生......

SELECT count(distinct StudentID) 
FROM tblStudentPRograms
WHERE ProgramID = 2

【讨论】:

    【解决方案3】:

    假设您想要不同数量的学生(不包括同一学生可能参加过两次课程的学生......

    SELECT count(distinct StudentID) 
    FROM tblStudentPRograms
    WHERE ProgramID = 2  
    

    虽然我不是肯定的访问支持一个独特的 w/在计数像其他 RDBMS 做...

    所以你可能必须这样做:

    SQL : how can i count distinct record in MS ACCESS

    SELECT count(BStudentID) as DistinctStudentsInProgram
    FROM (select distinct studentID, ProgramID from tblStudentPrograms) B
    WHERE B.ProgramID = 2 
    

    【讨论】:

    • 使用了您链接中的代码,这实际上是我想要的 - 显示带有计数的记录。谢谢!
    • 现在我可以利用这个来进一步细化这组学生,以显示在 tblStudentAwards 中也有记录的学生人数吗?
    猜你喜欢
    • 2014-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-07
    • 2020-01-07
    • 2019-02-20
    • 1970-01-01
    相关资源
    最近更新 更多