-- 作者:狐狸爸爸
-- 发布时间:2011/6/20 16:11:00
-- 请教一个困惑很久的SQL语句问题
打开CaseStudy下的文件: 多表统计.Table。
在Foxtable的SQL窗口执行(数据源选择Sale)下面的语句:
能正常执行的:
1、
Select 产品名称,客户名称,日期,数量,单价,数量 * 单价 As [金额] From ({订单} Left JOIN {产品} ON {产品}.[产品ID] = {订单}.[产品Id]) Left JOIN {客户} ON {客户}.[客户ID] = {订单}.[客户ID]
2、
Select 产品名称,客户名称,日期,数量,单价,数量 * 单价 As [金额] From ({订单} Right JOIN {产品} ON {产品}.[产品ID] = {订单}.[产品Id]) Left JOIN {客户} ON {客户}.[客户ID] = {订单}.[客户ID]
3、
Select 产品名称,客户名称,日期,数量,单价,数量 * 单价 As [金额] From ({订单} Left JOIN {产品} ON {产品}.[产品ID] = {订单}.[产品Id]) Right JOIN {客户} ON {客户}.[客户ID] = {订单}.[客户ID]
不能正常执行的:
Select 产品名称,客户名称,日期,数量,单价,数量 * 单价 As [金额] From ({订单} Right JOIN {产品} ON {产品}.[产品ID] = {订单}.[产品Id]) Right JOIN {客户} ON {客户}.[客户ID] = {订单}.[客户ID]
为什么两个Right Join就不行了呢?
|
-- 作者:rcsy001
-- 发布时间:2011/6/20 17:11:00
--
不能执行的改成这样:
select 客户名称,产品名称,日期,数量,单价,数量 * 单价 As [金额] from (Select 客户ID,产品名称,日期,数量,单价,数量 * 单价 As [金额] From ({订单} Right JOIN {产品} ON {产品}.[产品ID] = {订单}.[产品Id])) as a Right JOIN {客户} ON {客户}.[客户ID] = a.[客户ID]
|