2013-01-09 77 views
1

我在甲骨文APEX工作。我想從兩個表中看病人和病史的前幾個月患者的報告。 enter image description here舉報「按日期查詢」APEX

Pat_id是病歷表中的主鍵和歷史記錄表中的外鍵。

我想要告訴我應該告訴我Pat_Name ,Pat_Age ,Treated_ByDate哪裏我也可以從LOV(價值清單)中選擇月份,並在該月的基礎上向我顯示報告。

請幫我出 謝謝,

回答

2
SELECT p.pat_name, p.pat_age, h.treated_by, h.date 
    FROM patient p 
    JOIN history h 
    ON p.pat_id = h.pat_id 
WHERE EXTRACT(MONTH FROM h.date) = TO_NUMBER(:P1_MONTH) 

(一個很基本的加入確實條件)
如果你想訂購,可以包括這在SQL中,或在一個報表定義定義此經典報告,或作爲交互式報告中的默認值。

P1_MONTH:選擇列表。至於它的值列表,你可以定義個月靜態(12項以月數作爲返回值和月份名稱顯示),或使用查詢:

SELECT to_char(add_months(to_date('01/01/2012','DD/MM/YYYY'),LEVEL-1),'Month') display_value, LEVEL return_value 
FROM dual 
CONNECT BY LEVEL <= 12 

設置選擇列表提交關於變更。

另外需要注意的是:在您的模式中將您的列名設置爲UPPERCASE。列總是大寫,除非它們在創建時另行定義。還要小心使用保留關鍵字的東西,如列名稱:DATE可能不是一個列的最佳名稱...給它一個有用的名稱,如TREATED_ON

+0

@TOM ...我將如何做一個選擇在報告中列出。我可以在形式上做到這一點,但在報告中我沒有任何想法。 –

+0

您不在報告中製作選擇列表。您必須創建一個頁面項目選擇列表來執行此操作。您可以將頁面項目附加到報告區域,或創建一個空白的HTML區域來保存此項目。 – Tom