我需要根据下表生成报告:
CALLS_FOR_PROPOSALS
ID|Name
--+------
1|Call 1
2|Call 2
3|Call 3
PROPOSALS
ID|Call ID|Title
--+-------+----------
1| 1|Proposal 1
2| 2|Proposal 2
3| 2|Proposal 3
PROPOSAL_STATUSES
ID|Proposal ID|Status ID
--+-----------+---------
1| 1| 1
2| 2| 1
3| 3| 1
4| 3| 2
STATUSES
ID|NAME
--+------------
1|Not Reviewed
2|Processing
3|Accepted
4|Rejected
有了这个样本数据,就有 3 个提案征集。共有三个提案;一个用于呼叫 1,两个用于呼叫 2。(呼叫 3 没有任何提案。)每个提案至少分配有一个状态。当一行被插入到 PROPOSALS 表中时,相应的行被插入到 PROPOSAL_STATUSES 中,给提案一个初始默认状态 1(未审查)。每次状态更改时,都会在 PROPOSAL_STATUSES 表中插入一个新行,从而保留状态更改的历史记录。我需要生成一份报告,显示每个呼叫、提交的提案数量以及具有多个状态的提案数量(即状态已从默认值更改至少一次。)对于上面的示例数据,结果将如下所示:
Call Name|Proposals Submitted|Proposals Reviewed|
---------+-------------------+------------------+
Call 1 | 1| 0|
Call 2 | 2| 1|
Call 3 | 0| 0|
我将如何编写 SQL 查询以根据上述表结构生成此报告?谢谢你的帮助。