leftjoin语句报错

SELECT ACCOUNTCODE,PERIODV,NOV,YEARV,LOCALCREDITAMOUNT,LOCALDEBITAMOUNT,EXPLANATION,PK_VOUCHERTYPEV,ASSID,PK_DETAIL,PK_ACCOUNTINGBOOK,PK_ORG,PK_ACCASOA ,(SELECT NAME FROM ORG_CORP WHERE GL_DETAIL.PK_ORG=ORG_CORP.PK_CORP and NAME='A公司') as 财务组织,(SELECT NAME from  BD_VOUCHERTYPE WHERE GL_DETAIL.PK_VOUCHERTYPEV=BD_VOUCHERTYPE.PK_VOUCHERTYPE) as 凭证类别,(SELECT FILE_ID from V_GL_DETAIL WHERE GL_DETAIL.PK_DETAIL= V_GL_DETAIL.PK_DETAIL) as 数据交换平台传递编号 FROM  GL_DETAIL LEFT JOIN GL_DOCFREE1 WHERE  GL_DETAIL.ASSID=GL_DOCFREE1.ASSID

SQL yzm742603 发布于 2022-10-17 12:36
1min目标场景问卷 立即参与
回答问题
悬赏:0 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
StudyYLLv6初级互助
发布于2022-10-17 13:34

改了看下,应该是select字段是子查询的问题吧。还有个问题就是GL_DOCFREE1都没有用到字段left join 它干嘛?

SELECT A.ACCOUNTCODE,A.PERIODV,A.NOV,A.YEARV,A.LOCALCREDITAMOUNT,A.LOCALDEBITAMOUNT,A.EXPLANATION,A.PK_VOUCHERTYPEV,A.ASSID,A.PK_DETAIL,A.PK_ACCOUNTINGBOOK,A.PK_ORG,A.PK_ACCASOA,

 B.NAME AS 财务组织,

 C.NAME AS 凭证类别,

 D.FILE_ID AS 数据交换平台传递编号

FROM GL_DETAIL A

LEFT JOIN (SELECT B.PK_CORP,B.NAME FROM ORG_CORP B WHERE B.NAME='A公司')B ON B.PK_CORP=A.PK_ORG

LEFT JOIN (SELECT C.PK_VOUCHERTYPE,C.NAME from  BD_VOUCHERTYPE C )C ON C.PK_VOUCHERTYPE=A.PK_VOUCHERTYPEV

LEFT JOIN (SELECT D.PK_DETAIL,D.FILE_ID from V_GL_DETAIL D)D ON D.PK_DETAIL= A.PK_DETAIL

LEFT JOIN GL_DOCFREE1 E WHERE  A.ASSID=E.ASSID

  • yzm742603 yzm742603(提问者) finereport运行报错“缺失关键字”
    2022-10-18 09:36 
  • StudyYL StudyYL 回复 yzm742603(提问者) 最后那行LEFT JOIN GL_DOCFREE1 E WHERE A.ASSID=E.ASSID where改成on 即LEFT JOIN GL_DOCFREE1 E on A.ASSID=E.ASSID
    2022-10-18 10:37 
  • yzm742603 yzm742603(提问者) 回复 StudyYL 修改为“ON”后,SQL能运行,可是LEFT join的那张表,一个字段都没合并过来
    2022-10-18 12:18 
  • StudyYL StudyYL 回复 yzm742603(提问者) 你把字段加上,我不知道你要哪些字段。可以在“FROM GL_DETAIL A”前加上E.字段名
    2022-10-18 16:09 
最佳回答
0
Z4u3z1Lv6专家互助
发布于2022-10-17 12:39(编辑于 2022-10-17 12:40)

最后的where  改成  on

-----------------

image.png

  • yzm742603 yzm742603(提问者) 改成“on”也不行
    2022-10-17 12:52 
  • Z4u3z1 Z4u3z1 回复 yzm742603(提问者) 其它的你就要截图 把错误信息贴出来
    2022-10-17 12:56 
  • Z4u3z1 Z4u3z1 回复 yzm742603(提问者) 大概是这个字段 :ASSID没指明来源
    2022-10-17 13:00 
  • yzm742603 yzm742603(提问者) 回复 Z4u3z1 我把条件修改为“on”后,FINEREPORT查询报错为“未定义明确列”
    2022-10-18 09:33 
最佳回答
0
用户k6280494Lv6资深互助
发布于2022-10-17 13:06(编辑于 2022-10-18 09:59)

改了一下sql,拿数据跑一下看看

SELECT

ACCOUNTCODE,

PERIODV,

NOV,

YEARV,

LOCALCREDITAMOUNT,

LOCALDEBITAMOUNT,

EXPLANATION,

PK_VOUCHERTYPEV,

A.ASSID,

PK_DETAIL,

PK_ACCOUNTINGBOOK,

PK_ORG,

PK_ACCASOA,

( SELECT NAME FROM ORG_CORP A LEFT JOIN GL_DETAIL B ON A.PK_CORP = B.PK_ORG WHERE NAME = 'A公司' ) AS 财务组织,

( SELECT NAME FROM BD_VOUCHERTYPE A LEFT JOIN GL_DETAIL B ON A.PK_VOUCHERTYPEV= B.PK_VOUCHERTYPE ) AS 凭证类别,

( SELECT FILE_ID FROM V_GL_DETAIL A LEFT JOIN GL_DETAIL B ON A.PK_DETAIL= B.PK_DETAIL ) AS 数据交换平台传递编号 

FROM

GL_DETAIL A

LEFT JOIN GL_DOCFREE1 B ON A.ASSID= B.ASSID

  • yzm742603 yzm742603(提问者) 显示“B”.\"PK_CORP\" 标识符无效
    2022-10-18 09:42 
  • 用户k6280494 用户k6280494 回复 yzm742603(提问者) 交换一下位置,看修改后的答案
    2022-10-18 10:00 
  • 用户k6280494 用户k6280494 回复 yzm742603(提问者) 如果还有错,你要自己看下表字段的关系,然后按sql修改
    2022-10-18 10:01 
  • yzm742603 yzm742603(提问者) 回复 用户k6280494 修改后的答案在哪里?
    2022-10-18 10:21 
  • 3关注人数
  • 352浏览人数
  • 最后回答于:2022-10-18 09:59
    请选择关闭问题的原因
    确定 取消
    返回顶部