将两个 MS Access 查询合并为一个结果

问题描述 投票:0回答:1

我有一个包含学生和导师的 MS Access 表。每个学生最多可以有一名导师。导师本身可能是学生,所以他们也可能有导师。示例数据如下所示:

Student | Tutor
--------|--------
Alice   | 
Brandon | 
Charlie | Alice
Doug    | Charlie
Erin    | Charlie

我想用学生或导师的人数除以学生人数。为简单起见,假设这里的所有名称都是唯一的。

我能够获取分子的查询:

SELECT Count(*) AS Expr1
FROM (SELECT Student FROM Tutors WHERE Tutor IS NOT NULL
UNION SELECT Tutor FROM Tutors WHERE Tutor IS NOT NULL)

分母:

SELECT Count(*) AS Expr2
FROM (SELECT DISTINCT Student FROM Tutors)

第一个查询给了我 4,第二个查询给了我 5。这很好。我不知道如何在不出现错误的情况下将两者结合起来,得到所需的结果 4 / 5 * 100。我已经查看了其他几个解决方案,但它们似乎在 FROM 中有相同的表声明。

sql ms-access-2007
1个回答
0
投票

试试这个,看看是否有帮助。

SELECT (Numerator.Expr1 / Denominator.Expr2) * 100 AS Percentage
FROM
(
    SELECT COUNT(*) AS Expr1
    FROM (
        SELECT Student FROM YourTable WHERE Tutor IS NOT NULL
        UNION
        SELECT Tutor FROM YourTable WHERE Tutor IS NOT NULL
    ) AS Subquery1
) AS Numerator,
(
    SELECT COUNT(*) AS Expr2
    FROM (SELECT DISTINCT Student FROM YourTable)
) AS Denominator;

将 YourTable 替换为您的表的实际名称。该查询计算子查询中的分子和分母,然后在主查询中将它们组合起来计算百分比。

在此查询中:

Subquery1 计算作为学生或导师的不同学生的计数。 分母计算表中不同学生的数量。 主查询将分子除以分母,然后乘以 100 以获得百分比。 这将为您提供所需的结果 4/5 * 100,即 80。

© www.soinside.com 2019 - 2024. All rights reserved.