我为其中一个部门建立了一个图表:
select 'f?p=&APP_ID.:802:'||:app_session||'::::P802_ENQ_DATE:'|| e.enq_date ||':' link,
cal_date as label,
value1 as value
from
(select cal_date from time
where cal_date >= '01-'||:P802_SEARCH_MONTH and
cal_date <= last_day(to_date('01-'||:P802_SEARCH_MONTH, 'dd-mm-yy'))
) t
LEFT OUTER JOIN
(SELECT
a.enquired_date AS enq_date,
COUNT(a.id) AS value1
FROM
ENQUIRY a
group by a.enquired_date
) e
ON
to_char(e.enq_date) = to_char(t.cal_date)
order by label ASC
要求是按最终用户月份显示每日查询的数量。所以:P802_SEARCH_MONTH 会捕获月份名称并将此参数传递给时间表。时间表存储所有可能的日期天,然后图表将每天的所有查询相加,并将其与日期联接起来。重要的是要显示所有可能的日期,因为在某些日子里没有任何查询,如果相反,它将不会显示完整的日期范围。
无论如何,当你翻过图表的栏时,它会显示“标签”
我要求在标签中包含当天的名字。我尝试扩展't'语句:
select 'f?p=&APP_ID.:802:'||:app_session||'::::P802_ENQ_DATE:'|| e.enq_date ||':' link,
full_date as label,
value1 as value
from
(select to_char(to_date(cal_date,'dd-mon-yy'), 'DAY')||' - '|| cal_Date as full_date from time
where cal_date >= '01-'||:P802_SEARCH_MONTH and
cal_date <= last_day(to_date('01-'||:P802_SEARCH_MONTH, 'dd-mm-yy'))
) t
这不起作用。 Apex没有抛出任何有意义的错误。非常感谢任何帮助。
答案 0 :(得分:2)
请勿更改源查询t
。
cal_date是DATE
列吗? (我认为它确实是一个日期栏)
to_char(to_date(cal_date,'dd-mon-yy'), 'DAY')
如果是,则将日期转换为日期,然后应用格式掩码。不要将日期投射到日期。它已经是一个约会 还要注意日期转换。在顶点,你应该总是使用显式格式掩码,而不是依赖于隐式转换 - 否则它会在某些时候回来困扰你。
您需要更改LABEL
列
cal_date as label,
这将是工具提示值。现在你正在返回DATE,这就是你将鼠标悬停在数据点上时所看到的。数据库的格式掩码只是应用于它 如果您想要更改它,那么您只需将格式掩码应用于日期并在工具提示中显示。
select 'f?p=...' AS link,
TO_CHAR(cal_date, 'DAY') || ' - ' || cal_date AS label,
value1 AS value
from ...