报告“按日期查询”APEX

时间:2013-01-09 10:41:39

标签: sql oracle oracle11g oracle-apex

我在甲骨文APEX工作。我想报告上一个月由医生治疗的病人和病史两个表格。enter image description here

Pat_id是患者表中的主键和历史表中的外键。

我想要向我显示Pat_Name ,Pat_Age ,Treated_ByDate的报告,因为我还可以从LOV(价值清单)中选择月份,并根据该月的情况向我显示报告。

请帮助我 谢谢,

1 个答案:

答案 0 :(得分: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