我为股票和销售比较写了两个plsql functions
。一个为find_prodcuts_sold
,另一个为find_usage_from_stock
。
我可以通过find_prodcuts_sold
函数减少find_usage_from_stock
函数来区分库存和销售。为此,我应该将From date
和To date
传递给这两个函数。 (From date
和To date
取自stock_date
表格中的stock
列。然后我的函数返回给定日期范围的值。
现在我想使用我的函数创建一个line chart
来获得股票和板条之间的差异。图表应自动构建。没有用户通过From date
和To date
。
来自stock_date
的示例stock table
列。
stock_date
30-JAN-12
26-JAN-12
24-JAN-12
23-JAN-12
18-JAN-12
15-JAN-12
13-JAN-12
12-JAN-12
11-JAN-12
08-JAN-12
06-JAN-12
我想自动将以上日期传递给我的函数。
From To
26-JAN-12 30-JAN-12
24-JAN-12 26-JAN-12
23-JAN-12 24-JAN-12
18-JAN-12 23-JAN-12
15-JAN-12 18-JAN-12
13-JAN-12 15-JAN-12
12-JAN-12 13-JAN-12
11-JAN-12 12-JAN-12
08-JAN-12 11-JAN-12
06-JAN-12 08-JAN-12
我怎么能这样做?
答案 0 :(得分:2)
select stock_date, lead(stock_date, 1, null) over (order by stock_date) next_date
from stock_table
然后使用查询结果输入,即:
SELECT find_usage_from_stock(t.product_id, t.start_date, t.end_date) as usage_from_stock,
find_prodcuts_sold(t.product_id, t.start_date, t.end_date) as prodcuts_sold,
t.product_id, t.start_date
FROM (select stock_date as start_date,
lead(stock_date, 1, null) over (order by stock_date) as end_date,
product_id
from stock_table) t
注意:我在前导函数中使用null作为空值,也许你需要放其他东西