Foxtable(狐表)用户栏目专家坐堂 → sql语句出错


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

主题:sql语句出错

帅哥哟,离线,有人找我吗?
yankunhao
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1019 积分:7155 威望:0 精华:0 注册:2008/9/1 22:34:00
sql语句出错  发帖心情 Post By:2013/12/27 14:10:00 [显示全部帖子]

有如下的语句子,为什么会出错?

SELECT parent_part as 内部编码,child_part,Left(unit_qty,4) As 数量,bom_sort As 排序,{ov_part}.item_no As 物料编码,{ov_part}.part_name As 名称,{ov_part}.part_spec As 规格,{obas_part1}.bom_draw_no As 图号,{obas_part1}.bom_draw_no_wf as 备注,wf_zh as 珠号,{obas_part1}.bom_cbdj as 单价,bomjj as 金额,{obas_part1}.bom_cbdjrem as 价格备注,base_name as 单位 ((from {obom_stru2} INNER JOIN {ov_part} on {obom_stru2}.child_part = {ov_part}.part_no) INNER JOIN {obas_part1} on {obom_stru2}.child_part = {obas_part1}.part_no) INNER JOIN {obas_base_code} on {ov_part}.bom_unit_no = {obas_base_code}.base_code where {obas_base_code}.code_type = '115'and parent_part = 'O0000000000000025153' ORDER BY 排序

 

 


图片点击可在新窗口打开查看此主题相关图片如下:出错1.png
图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
yankunhao
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1019 积分:7155 威望:0 精华:0 注册:2008/9/1 22:34:00
  发帖心情 Post By:2013/12/27 14:14:00 [显示全部帖子]

说明中不是说:有多个JOIN语句的情况下,靠前的JOIN语句要用圆括号括起来

 回到顶部
帅哥哟,离线,有人找我吗?
yankunhao
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1019 积分:7155 威望:0 精华:0 注册:2008/9/1 22:34:00
  发帖心情 Post By:2013/12/27 14:16:00 [显示全部帖子]

说明中的有关多表查询:

语法:

SELECT 字段列表 FROM {表1} INNER JOIN {表2} ON {表1}.列名 = {表2}.列名

ON关键词指定两个表通过哪一列进行连接,指定的字段必须具备相同的数据类型和长度。

如果某个字段在不止一个表中出现,必须在Select语句中明确表的名称,格式为: {表名}.列名

示例:

SELECT {订单明细}.*, 产品名称 FROM {订单明细} INNER JOIN {产品} ON {订单明细}.产品ID = {产品}.产品ID ORDER BY 订单ID

上述语句生成的查询表,包括订单明细的所有列,以及该订单明细对应的产品名称(来源于产品表)

 

SELECT 订购日期,公司名称,产品名称, 数量, {订单明细}.单价, 折扣, (数量 * {订单明细}.单价 * (1-折扣)) AS 金额 FROM (({订单明细} INNER JOIN {产品} ON {订单明细}.产品ID = {产品}.产品ID) INNER JOIN {订单} ON {订单明细}.订单ID = {订单}.订单ID) INNER JOIN {客户} ON {订单}.客户ID = {客户}.客户ID

 

 

此外,在有多个JOIN语句的情况下,靠前的JOIN语句要用圆括号括起来,如前面的例子所示。


 回到顶部
帅哥哟,离线,有人找我吗?
yankunhao
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1019 积分:7155 威望:0 精华:0 注册:2008/9/1 22:34:00
  发帖心情 Post By:2013/12/27 14:18:00 [显示全部帖子]

那么我这个语句又有什么错的呢?

 回到顶部
帅哥哟,离线,有人找我吗?
yankunhao
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1019 积分:7155 威望:0 精华:0 注册:2008/9/1 22:34:00
  发帖心情 Post By:2013/12/27 14:27:00 [显示全部帖子]

我使用的是SQL Server,这也不用什么例子吧,从语句里不是可以看得出语法是否符合FB的吗?
[此贴子已经被作者于2013-12-27 14:28:56编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
yankunhao
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1019 积分:7155 威望:0 精华:0 注册:2008/9/1 22:34:00
  发帖心情 Post By:2013/12/27 14:36:00 [显示全部帖子]

那请问红色的部份有什么问题?你都标出了,可以简单说一下你的看法嘛

 回到顶部
帅哥哟,离线,有人找我吗?
yankunhao
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1019 积分:7155 威望:0 精华:0 注册:2008/9/1 22:34:00
  发帖心情 Post By:2013/12/27 14:44:00 [显示全部帖子]

以下是引用Bin在2013-12-27 14:30:00的发言:
SELECT parent_part as 内部编码,child_part,Left(unit_qty,4) As 数量,bom_sort As 排序,{ov_part}.item_no As 物料编码,{ov_part}.part_name As 名称,{ov_part}.part_spec As 规格,{obas_part1}.bom_draw_no As 图号,{obas_part1}.bom_draw_no_wf as 备注,wf_zh as 珠号,{obas_part1}.bom_cbdj as 单价,bomjj as 金额,{obas_part1}.bom_cbdjrem as 价格备注,base_name as 单位 (((from {obom_stru2} INNER JOIN {ov_part} on {obom_stru2}.child_part = {ov_part}.part_no) INNER JOIN {obas_part1} on {obom_stru2}.child_part = {obas_part1}.part_no) INNER JOIN {obas_base_code} on {ov_part}.bom_unit_no = {obas_base_code}.base_code) where {obas_base_code}.code_type = '115'and parent_part = 'O0000000000000025153' ORDER BY 排序

还是不行请上例子,纸上不谈兵!


图片点击可在新窗口打开查看此主题相关图片如下:出错2.png
图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
yankunhao
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1019 积分:7155 威望:0 精华:0 注册:2008/9/1 22:34:00
  发帖心情 Post By:2013/12/27 14:51:00 [显示全部帖子]

以下是引用Bin在2013-12-27 14:46:00的发言:
还是不行请上例子,纸上不谈兵!

这个是从服务器里的数据库测试的,例子不好做,能否用QQ远程连接看下?根据说明书来说,应该是两个“((”就可以了,不明白你要三个“(((”除非说明书有错!


 回到顶部
帅哥哟,离线,有人找我吗?
yankunhao
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1019 积分:7155 威望:0 精华:0 注册:2008/9/1 22:34:00
  发帖心情 Post By:2013/12/27 15:01:00 [显示全部帖子]

我现在用下面的语句测试是可以的,这个是将这些“(”号删除就可以,加了“(”就不可以,真不明白说明书为什么要加上括号,说明书有下面的说法:

 

“此外,在有多个JOIN语句的情况下,靠前的JOIN语句要用圆括号括起来,如前面的例子所示

 

SELECT parent_part as 内部编码,child_part,Left(unit_qty,4) As 数量,bom_sort As 排序,{ov_part}.item_no As 物料编码,{ov_part}.part_name As 名称,{ov_part}.part_spec As 规格,{obas_part1}.bom_draw_no As 图号,{obas_part1}.bom_draw_no_wf as 备注,wf_zh as 珠号,{obas_part1}.bom_cbdj as 单价,bomjj as 金额,{obas_part1}.bom_cbdjrem as 价格备注,base_name as 单位 from {obom_stru2} INNER JOIN {ov_part} on {obom_stru2}.child_part = {ov_part}.part_no INNER JOIN {obas_part1} on {obom_stru2}.child_part = {obas_part1}.part_no INNER JOIN {obas_base_code} on {ov_part}.bom_unit_no = {obas_base_code}.base_code where {obas_base_code}.code_type = '115'and parent_part = 'O0000000000000025153' ORDER BY 排序


 回到顶部
帅哥哟,离线,有人找我吗?
yankunhao
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1019 积分:7155 威望:0 精华:0 注册:2008/9/1 22:34:00
  发帖心情 Post By:2013/12/27 15:02:00 [显示全部帖子]

那请问不加括号可以查,加括号就不可以查是什么原因?

 回到顶部
总数 13 1 2 下一页