以文本方式查看主题
- Foxtable(狐表) (http://foxtable.com/bbs/index.asp)
-- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2)
---- sql语句出错 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=44306)
|
-- 作者:yankunhao
-- 发布时间:2013/12/27 14:10:00
-- sql语句出错
有如下的语句子,为什么会出错?
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

|
-- 作者:Bin
-- 发布时间:2013/12/27 14:12: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 排序
SQL没有这样的语法,上例子,说清楚你要实现的需求.
|
-- 作者:yankunhao
-- 发布时间:2013/12/27 14:14:00
--
说明中不是说:有多个JOIN语句的情况下,靠前的JOIN语句要用圆括号括起来
|
-- 作者:yankunhao
-- 发布时间: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
-- 发布时间:2013/12/27 14:18:00
--
那么我这个语句又有什么错的呢?
|
-- 作者:Bin
-- 发布时间:2013/12/27 14:26:00
--
请上例子. 另外你使用的是MSSQL 还是ACCESS呢?
|
-- 作者:yankunhao
-- 发布时间:2013/12/27 14:27:00
--
我使用的是SQL Server,这也不用什么例子吧,从语句里不是可以看得出语法是否符合FB的吗?
[此贴子已经被作者于2013-12-27 14:28:56编辑过]
|
-- 作者: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 排序
还是不行请上例子,纸上不谈兵!
|
-- 作者:yankunhao
-- 发布时间:2013/12/27 14:36:00
--
那请问红色的部份有什么问题?你都标出了,可以简单说一下你的看法嘛
|
-- 作者:Bin
-- 发布时间:2013/12/27 14:41:00
--
请问你复制我的SQL语句后是否正常运作了?
|