我的查询如下
select DISTINCT
wftransaction.PERSONID,
pr.PRNUM,
pr.DESCRIPTION,
pr.PR1,
prline.GLDEBITACCT,
wftransaction.TRANSDATE,
prstatus.CHANGEBY
prstatus.CHANGEDATE,
prstatus.STATUS,
prstatus.MEMO
from pr
left outer join wftransaction pr.PRID = wftransaction.ORNERID and wftransaction.OWNERTABLE ='PR'
left outer join prline on pr.PRNUM = prline.PRNUM
left outer join prstatus on pr.PRNUM= prstatus.PRNUM
我的查询给出的结果有重复的结果。请帮我消除冗余/重复输出。
当我说明了这就是https://i.stack.imgur.com/I2jnN.jpg,
我只应该看到2个具有相同“STATUS”的输出,即(COMPOSING)或(APPR),因为它们有不同的“GLDEBITACCT”,除此之外,不应该有更多重复。
答案 0 :(得分:0)
我认为你应该使用内连接,因为如果左连接使用的地方,表A中的所有数据将重复显示,因为表B有其外键,或者有时你可能缺少WHERE子句,这取决于你的查询,如果您可以将整个查询及其结构与预期结果粘贴,那么对其他人会更有帮助。
https://www.codeproject.com/kb/database/visual_sql_joins.aspx
答案 1 :(得分:0)
好主意是在查询中放置一个简单的DISTINCT子句
select DISTINCT
wftransaction.PERSONID,
pr.PRNUM,
pr.DESCRIPTION,
pr.PR1,
prline.GLDEBITACCT,
wftransaction.TRANSDATE,
prstatus.CHANGEBY
prstatus.CHANGEDATE,
prstatus.STATUS,
prstatus.MEMO
from pr
left outer join wftransaction pr.PRID = wftransaction.ORNERID and wftransaction.OWNERTABLE ='PR'
left outer join prline on pr.PRNUM = prline.PRNUM
left outer join prstatus on pr.PRNUM= prstatus.PRNUM