我在 Oracle APEX 工作。我想从两个表(即患者和历史)中报告上个月接受医生治疗的患者。
Pat_id 是 Patient 表中的主键和 History 表中的外键。
我想要报告应该向我显示 Pat_Name ,Pat_Age ,Treated_By
以及 Date
我还可以从LOV
(值列表)中选择月份的位置,并根据该月份向我显示报告。
请帮助我谢谢,
我在 Oracle APEX 工作。我想从两个表(即患者和历史)中报告上个月接受医生治疗的患者。
Pat_id 是 Patient 表中的主键和 History 表中的外键。
我想要报告应该向我显示 Pat_Name ,Pat_Age ,Treated_By
以及 Date
我还可以从LOV
(值列表)中选择月份的位置,并根据该月份向我显示报告。
请帮助我谢谢,
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
将选择列表设置为提交更改。
作为一个额外的说明:在你的模式中将你的列名设置为大写。除非在创建时以其他方式定义列,否则列始终为大写。还要小心使用保留关键字来表示列名:DATE
可能不是列的最佳名称...给它一个有用的名称,例如TREATED_ON