2014-04-21 15 views
1

我在此處鏈接了以下表格:tables帶有3個表的SQL存儲過程

我有什麼在這裏:procedure

我需要列出屬於給定客戶的所有項目和任務(作爲參數給出的客戶編號)。在報告開始時顯示客戶名稱,然後顯示第一個項目,顯示項目和名稱。對於其下面的每個項目顯示任務編號(按升序),描述,小時和開始日期。按照客戶的任務總數和項目費用完成最後的任務,然後爲客戶的每個後續項目執行相同的操作。在報告結束時,給出所有任務的總小時數,以及報告了多少項目和任務。

我真的不知道程序是如何工作的,所以任何幫助表示讚賞。謝謝!

+0

當前輸出的問題是什麼?另外,你應該爲PL/SQL添加一個標籤。 – FumblesWithCode

+0

嗯,我需要它來顯示列標題,我沒有。我還需要它顯示每個項目的總任務數以及每個項目的總小時數。然後在報告結尾處,我需要項目總數,任務總數和總小時數。 – tkess17

+0

此外,我需要它顯示項目的所有任務,我不知道該怎麼做。 – tkess17

回答

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適合那些喜歡刺傷它的人。

分享和享受。