Foxtable(狐表)用户栏目专家坐堂 → 请教一个困惑很久的SQL语句问题


  共有14642人关注过本帖树形打印复制链接

主题:请教一个困惑很久的SQL语句问题

帅哥,在线噢!
狐狸爸爸
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47477 积分:251256 威望:0 精华:91 注册:2008/6/17 17:14:00
请教一个困惑很久的SQL语句问题  发帖心情 Post By:2011/6/20 16:11:00 [显示全部帖子]

打开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就不行了呢?

 


 回到顶部
帅哥,在线噢!
狐狸爸爸
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47477 积分:251256 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/6/20 16:42:00 [显示全部帖子]

例子就是CaseStudy下的文件: 多表统计.Table

 回到顶部
帅哥,在线噢!
狐狸爸爸
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47477 积分:251256 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/6/20 16:50:00 [显示全部帖子]

以下是引用rcsy001在2011-6-20 16:48:00的发言:
就一楼的代码,在狐表的SQL里就运行通不过啊

 

要选择数据源"Sale"


 回到顶部
帅哥,在线噢!
狐狸爸爸
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47477 积分:251256 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/6/20 17:04:00 [显示全部帖子]

是的,SQl 我也测试了,就是Access不行,不明白Access为啥两个Right 就不行了

 回到顶部
帅哥,在线噢!
狐狸爸爸
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47477 积分:251256 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/6/20 17:14:00 [显示全部帖子]

我能改成可执行的,例如这样的话,两个Right都可以:

 

Select 产品名称,客户名称,日期,数量,单价,数量 * 单价 As [金额] From ({产品} Right JOIN {订单} ON {产品}.[产品ID] = {订单}.[产品Id]) Right JOIN {客户} ON {客户}.[客户ID] = {订单}.[客户ID]

 

我只是不知道规律。


 回到顶部
帅哥,在线噢!
狐狸爸爸
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47477 积分:251256 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/6/20 17:35:00 [显示全部帖子]

以下是引用reachtone在2011-6-20 17:12:00的发言:

呵呵,Access好多都不支持的,尤其是多表的这种。比如,多表连接的full join连接方式,在Access里也不支持的。

可以在帮助里注明一下,统计工具里的有些设置方式只在sql数据库中有效。用foxtable的人,应该大部分都是使用大型数据库的

 

关键就是这里,我也想注明,可以找不到规律,不知道该如何注明。


 回到顶部
帅哥,在线噢!
狐狸爸爸
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47477 积分:251256 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/6/20 17:39:00 [显示全部帖子]

算了,我加上选择连接方式的参数,然后来一句:Access只支持内连接。

 回到顶部