WEB开发网
开发学院数据库Oracle Oracle中使用SQL MODEL定义行间计算 阅读

Oracle中使用SQL MODEL定义行间计算

 2007-05-10 12:20:26 来源:WEB开发网   
核心提示: 注意:符号引用功能强大,但它们只能用于更新现有的单元格:它们不能创建新单元格,Oracle中使用SQL MODEL定义行间计算(7),例如,未来几年的销售规划,对于此处定义的任何新产品名也是如此,在第三条规则中,4.您希望通过单一查询来更新多个国家/地区的多种产品在数年中的销售,并且还希望

注意:符号引用功能强大,但它们只能用于更新现有的单元格:它们不能创建新单元格,例如,未来几年的销售规划。

4.您希望通过单一查询来更新多个国家/地区的多种产品在数年中的销售,并且还希望插入新的单元格。通过将数个规则置于一个查询中,处理会更加高效,因为这减少了需要访问数据的次数。它还允许使用更为简洁的 SQL,以使开发人员的工作效率更高。从 SQL*Plus 会话中,执行以下脚本:

@c:wkdirpos_sym.sql
pos_sym.sql 脚本包含以下内容: SELECT SUBSTR(country,1,20) country,
SUBSTR(prod,1,15) prod, year, sales
FROM sales_view WHERE country IN ('Italy','Japan')
MODEL RETURN UPDATED ROWS
  PARTITION BY (country)
  DIMENSION BY (prod, year)
  MEASURES (sale sales)
  RULES (
  sales['Bounce', 2002] = sales['Bounce', year = 2001] ,
  --positional notation: can insert new cell
  sales['Y Box', year>2000] = sales['Y Box', 1999],
  --symbolic notation: can update existing cell
  sales['2_Products', 2005] =
  sales['Bounce', 2001] + sales['Y Box', 2000] )
  --positional notation: permits insert of new cells
  --for new product
ORDER BY country, prod, year
/

该示例数据没有超出 2001 年的值,因此所有涉及到 2002 年或之后的规则都要求插入新的单元格。对于此处定义的任何新产品名也是如此。在第三条规则中,2_Products 被定义为 2005 年的销售是 2001 年 Bounce 销售与 2000 年 Y Box 销售总和的产品。

上一页  2 3 4 5 6 7 8 9 10  下一页

Tags:Oracle 使用 SQL

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接