Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL连接复制我的数据_Sql_Duplicates - Fatal编程技术网

SQL连接复制我的数据

SQL连接复制我的数据,sql,duplicates,Sql,Duplicates,我尝试连接一些表,但在复制数据时遇到问题 代码如下: select distinct VB1ACC.AcctCode ,VB1ACC.AcctName ,VPKA.Projektnummer as Project ,VPKA.Cost ,VPKA.Revenue ,VJZ.TransID from ViewB1Accounts as VB1ACC left join ViewProjektPlanungKontenAktuell

我尝试连接一些表,但在复制数据时遇到问题

代码如下:

  select distinct
     VB1ACC.AcctCode
    ,VB1ACC.AcctName
    ,VPKA.Projektnummer as Project
    ,VPKA.Cost
   ,VPKA.Revenue
   ,VJZ.TransID

  from
ViewB1Accounts as VB1ACC


left join
   ViewProjektPlanungKontenAktuell as VPKA
 on
   VB1ACC.AcctCode = VPKA.AcctCode

 left join
  ViewJeZeilen as VJZ
 ON
VB1ACC.AcctCode = VJZ.ShortName
and
 VPKA.Projektnummer = VJZ.Project

where
  VPKA.Planungsversionstyp = 3
and
 VB1ACC.AcctCode between '3210' and '3250'
or
 VPKA.Planungsversionstyp = 3
and
 VB1ACC.AcctCode between '8210' and '8250'
当我现在添加VJZ.TransID时,它开始将我的行复制为 “Projektnummer”不止一次出现

现在的目标是消除重复

有什么想法吗

更新:

正如您在记录中看到的,账户代码3212有23次。 原因I是字段Trans-ID。在下一张图片中,根据相同的项目和acctcode,您有不同的Trans-ID

现在如何防止复制?

使用分组方式

按VB1ACC.AcctCode分组 ,VB1ACC.AcctName ,VPKA.Projektnummer作为项目 ,VPKA.Cost,VPKA.Revenue,VJZ.TransID


使用“复制”是否意味着要分组的行会多次显示?这些都有1个不同的值?如果是这样,请回答错误的问题,并根据该数据添加一些和预期输出。请您的问题-不要在评论中发布代码或附加信息。您使用的是哪种产品?博士后?神谕“SQL”只是一种查询语言,而不是特定数据库产品的名称。如果您得到了重复,那么您的连接的数量是一对多关系。在这种情况下,你必须找到一种方法,使之成为一对一的关系。方法取决于您的数据。此外,考虑在<<代码>中添加括号:子句;混合使用
以及
而不使用括号很少能得到预期的结果(除非您非常熟悉规则)。