1

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

students一个主键为record_number的表和一个外键指向 的应用程序表record_number。应用程序表有一个status_id字段是 value 34或者7如果学生被安排在实习,任何其他值意味着他们没有被安排实习。

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

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

任何帮助是极大的赞赏。

4

2 回答 2

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;
于 2012-12-05T08:17:23.923 回答
0

像这样使用 sql union

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

联盟

选择 NULL AS 链接,“未放置”AS 标签,COUNT(*) AS 值 FROM tbl_students 学生加入 tbl_applications 应用程序使用(记录编号)WHERE applications.status_id 不在(3、4、7)

于 2012-12-05T04:30:30.417 回答