语法描述:
SELECT …
ON D AS A WHERE …
FROM T BY T.F.....
参数说明:
D |
维 |
A |
D的别名,AS可省略 |
WHERE… |
基于D写的过滤条件 |
BY T.F |
分组字段 |
注:表间关系可参考连接章节中的数据结构图
SELECT ReturnedPmt.sum(Amount) Pamount,Orders.sum(Amount) Oamount ON year WHERE year>2011 FROM Orders BY ShipDate#year UNION ReturnedPmt BY Date#year |
对year维进行过滤,取回款日期和发货日期在2011年之后的回款总额和订单总额 |
SELECT ReturnedPmt.sum(Amount) Pamount,Orders.sum(Amount) Oamount ON EMPLOYEE WHERE ([1,5,9]).contain(EMPLOYEE.EmpID ) FROM Orders BY EmployeeID UNION ReturnedPmt BY SellerID |
根据维EMPLOYE对齐ReturnedPmt表与Orders表,维过滤条件是维字段EmpID为序列[ 1,5,9]的成员 |
知识点:
1) 在ON后面写过滤条件,对维进行过滤的条件会直接作用于与ON对齐的每个BY的字段中
2) 维过滤条件where中除了常规的大于,小于,等于等单值判断,还可以使用集算器函数
如果在多表连接中,多表的字段指向一个维,则维后面的过滤条件,将会在所涉及的每一个表中进行过滤