从信息链接生成的 SQL 的示例
该部分包括使用信息链接时对数据库生成的 SQL 查询的外观,以及查询与 Information Designer 中的元素之间关系的示例。
示例:来自筛选器的 SQL
在此示例中,我们定义具有筛选器的列元素。该列应只返回金额超过 10000 的销售事务:


使用名称“高销售额”保留该列元素。
上述定义的列元素作为信息链接的一部分执行时,将产生以下 SQL:
SELECT
S1."Sales" AS "HIGHSALES"
FROM
"Sales"."dbo"."SalesandCost" S1
WHERE
(S1."Sales" > 10000)
AND <conditions>
示例:GROUP BY
在此示例中,我们使用聚合计算我们公司在一些产品上的平均利润,以找出最好的产品。
我们假定数据库提供了列来包含每次事务中购买者向我们提供的价格(销售额)以及我们公司在当时为原始材料支付的金额(成本)。我们还拥有一个列来包含在每次事务中销售的产品类型(类型)。
定义称为“平均利润”的列元素,如下所示:


还必须定义列元素类型来返回用于对查询分组的产品类型。
如果我们使用这三个列定义信息链接,则会生成以下 SQL。(请注意 GROUP BY
子句。)
SELECT
tmp1."AVERAGEPROFIT",
E1."TYPE" AS "TYPE"
FROM
"Sales"."dbo"."SalesandCost" S1
SELECT
AVG(E1."Sales" - E1."Cost") AS "AVERAGEPROFIT",
E1."TYPE" AS col1
FROM
"Sales"."dbo"."SalesandCost" S1
GROUP BY
E1."TYPE"
) tmp1
WHERE
(E1."TYPE" = tmp1.col1)
AND <conditions>
示例:子查询
Information Designer 支持子查询(内部 SQL)在本示例中,我们演示如何检索大于平均值的所有销售事:


我们通过以下筛选表达式创建一个新列“高销售额事务”:
%1 > (Select avg(Sales) from Sales.dbo.SalesandCost)
注: 包含所有括号,否则表达式无法起作用。
当作为信息链接的一部分执行时,以上定义的列元素将产生以下 SQL(请注意,WHERE
子句包含筛选器条件中的子查询):
SELECT
S1."Sales" AS "HIGHSALESTRANSACTIONS"
FROM
"Sales"."dbo"."SalesandCost" S1
WHERE
(S1."Sales" >(
Select
avg(Sales)
from
Sales.dbo.SalesandCost
))
AND <conditions>
- 示例:创建 PL/SQL 函数
在此示例中,我们通过在 SQLplus 中编写执行计算的函数来检索以美元 (USD) 和欧元 (EUR) 为单位的员工销售额信息。
- 示例:创建 PL/SQL 函数
在此示例中,我们通过在 SQLplus 中编写执行计算的函数来检索以美元 (USD) 和欧元 (EUR) 为单位的员工销售额信息。
父主题: 提示和示例