我在这里链接了以下表格:tables。
我所拥有的是:procedure。
我需要列出属于给定客户的所有项目和任务(作为参数提供的客户编号)。在报告开头显示客户名称后跟第一个项目,显示项目和名称。对于每个项目下方显示的任务编号(按升序排列),描述,小时和开始日期。按照客户的总任务数和项目费用执行上一个任务,然后对客户的每个后续项目执行相同的操作。在报告的最后,给出所有任务的总小时数,以及报告的项目和任务的数量。
我不确定程序是如何运作的,所以对任何帮助表示赞赏。谢谢!
答案 0 :(得分:1)
nextproject
游标在TASK与游标中使用的任何其他表之间没有定义任何关系,因此TASK中的每一行都连接到PROJECT和CUSTOMER的所有有效组合。这被称为"笛卡尔联合"并且可能不是你想到的。要纠正此问题,您需要稍微修改光标:
cursor nextproject is
select p.pjno, c.custname, t.taskno, t.descrip, t.hrs, t.start_date
from task T, project P, customer C
where C.custno = P.custno and
p.custno = custnum
AND t.pjno = p.pjno; -- ADDED
这可能会或可能不会解决您的所有问题,但它应该会引导您完成此任务。
SQLFiddle here对于那些想要刺伤它的人。
分享并享受。