为 APEX 饼图放置和未放置的返校学生

Posted

技术标签:

【中文标题】为 APEX 饼图放置和未放置的返校学生【英文标题】:Returning students who are placed and unplaced for an APEX pie chart 【发布时间】:2012-12-05 00:02:37 【问题描述】:

我正在尝试为 APEX 饼图编写查询,该饼图显示有多少学生被安排参加实习,哪些学生没有。

有一个主键为record_numberstudents 表和一个外键指向record_number 的应用程序表。申请表有一个 status_id 字段,如果学生被安排实习,则该字段的值是 347,任何其他值表示他们没有实习。

这是我迄今为止的查询,它成功显示了那些被安排实习的人:

SELECT NULL AS link, 'Placed' AS label, COUNT(*) AS value
FROM tbl_students students
JOIN tbl_applications applications USING (record_number)
WHERE applications.status_id IN (3, 4, 7)

这成功返回一行显示有多少学生被安排实习,但是我需要它再返回一行显示没有实习的学生数量,同时仍然只有这三个字段( linklabelvalue)。

举个例子,如果我在数据库中有 10 个学生,其中 4 个被安排在实习,查询应该返回这些行:

link    |    label    |    value
---------------------------------
(null)  | Placed      | 4
(null)  | Unplaced    | 6

非常感谢任何帮助。

【问题讨论】:

【参考方案1】:

以下假设每个 tbl_students 在 tbl_applications 中只有一条记录:

SELECT NULL AS link,
       CASE WHEN applications.status_id IN (3,4,7)
            THEN 'Placed' ELSE 'Unplaced'
       END AS label,
       COUNT(*) AS value
FROM tbl_students students
JOIN tbl_applications applications USING (record_number)
GROUP BY CASE WHEN applications.status_id IN (3,4,7)
              THEN 'Placed' ELSE 'Unplaced'
         END;

【讨论】:

【参考方案2】:

像这样使用 sql union

SELECT NULL AS 链接,'Placed' AS 标签,COUNT(*) AS 值 FROM tbl_students 学生 加入 tbl_applications 应用程序使用 (record_number) WHERE applications.status_id IN (3, 4, 7)

联合

SELECT NULL AS 链接,'Unplaced' AS 标签,COUNT(*) AS 值 FROM tbl_students 学生 加入 tbl_applications 应用程序使用 (record_number) WHERE applications.status_id NOT IN (3, 4, 7)

【讨论】:

有使用自连接的替代方法,但为此我需要知道你的表的结构

以上是关于为 APEX 饼图放置和未放置的返校学生的主要内容,如果未能解决你的问题,请参考以下文章

57级返校测试-T3-成绩单

python学生管理系统(pyqt5 含界面)

python学生管理系统(pyqt5 含界面)

python学生管理系统(pyqt5 含界面)

2014年TI杯大学生电子设计竞赛题 B题:金属物体探测定位器(本科) 求思路

Oracle apex 在特定图像上写入和修改