Sql server 2008 r2 我使用内部联接,但记录是重复的,尽管我使用了;独特的;及;分组方式;在SQLServer2008R2中为什么?

Sql server 2008 r2 我使用内部联接,但记录是重复的,尽管我使用了;独特的;及;分组方式;在SQLServer2008R2中为什么?,sql-server-2008-r2,Sql Server 2008 R2,这是我运行此命令时的查询,它会给我重复的记录,但我删除了sd.StyleID=PLOH.StyleID上的内部连接规划OrderbookHeader PLOH和列PLOH.OderBookID,它会给我不重复的记录,但我需要列名为PLOH.OderBookID的记录。如何解决这个问题 SELECT CPO.ID ,CPO.StyleID ,cpo.CustomerPo ,PLOH.OderBookID ,cpo.Proces

这是我运行此命令时的查询,它会给我重复的记录,但我删除了sd.StyleID=PLOH.StyleID上的
内部连接规划OrderbookHeader PLOH和列
PLOH.OderBookID
,它会给我不重复的记录,但我需要列名为
PLOH.OderBookID
的记录。如何解决这个问题

SELECT 
       CPO.ID   
      ,CPO.StyleID 
      ,cpo.CustomerPo
      ,PLOH.OderBookID
      ,cpo.Process
      ,CPD.Qty
      ,cpd.RefID
      ,cpd.Uom
      ,UM.MeshType
      ,PRC.Name
      ,STC.NewStyleno
      ,SD.TypeID
      ,itm.Name Part
      ,SD.ColorID
      ,COL.Name Color   
      ,SD.FabricID
      ,FAB.Name Faric
      ,SHD.ItemID
      ,ITD.Name Item
      ,SHD.Image
FROM CustomerPO_Header CPO
   INNER JOIN styleconfirmHeader STC ON STC.StyleID=CPO.StyleID 
   INNER JOIN CustomerPo_Details CPD  ON CPO.ID=CPD.CusPOHeaderID   
   INNER JOIN StyleHeader SHD ON SHD.StyleID=CPO.StyleID
    INNER JOIN StyleDetails SD ON CPO.StyleID=SD.StyleID
    INNER JOIN ItemDetails itm ON SD.TypeID=itm.ID
    INNER JOIN ColorDetails COL ON SD.ColorID=COL.ID
    INNER JOIN ItemFabricDetails FAB ON FAB.ID=SD.FabricID
    INNER JOIN UOM UM ON Um.ID=CPD.Uom
    INNER JOIN ItemTypeDetails ITD ON SHD.ItemID=ITD.ID
    INNER JOIN process PRC ON PRC.ID=CPO.Process
   INNER JOIN planingOrderBookHeader PLOH ON sd.StyleID=PLOH.StyleID 

请帮帮我,不知道你有什么数据很难测试。但是,您可以尝试将导致重复的表移动到子查询而不是联接中。比如:

SELECT 
   CPO.ID   
  ,CPO.StyleID 
  ,cpo.CustomerPo
  ,(SELECT PLOH.OderBookID FROM planingOrderBookHeader PLOH WHERE sd.StyleID=PLOH.StyleID) AS OderBookID
  ,cpo.Process
  ,CPD.Qty
  ,cpd.RefID
  ,cpd.Uom
  ,UM.MeshType
  ,PRC.Name
  ,STC.NewStyleno
  ,SD.TypeID
  ,itm.Name Part
  ,SD.ColorID
  ,COL.Name Color   
  ,SD.FabricID
  ,FAB.Name Faric
  ,SHD.ItemID
  ,ITD.Name Item
  ,SHD.Image
FROM CustomerPO_Header CPO
INNER JOIN styleconfirmHeader STC ON STC.StyleID=CPO.StyleID 
INNER JOIN CustomerPo_Details CPD  ON CPO.ID=CPD.CusPOHeaderID   
INNER JOIN StyleHeader SHD ON SHD.StyleID=CPO.StyleID
INNER JOIN StyleDetails SD ON CPO.StyleID=SD.StyleID
INNER JOIN ItemDetails itm ON SD.TypeID=itm.ID
INNER JOIN ColorDetails COL ON SD.ColorID=COL.ID
INNER JOIN ItemFabricDetails FAB ON FAB.ID=SD.FabricID
INNER JOIN UOM UM ON Um.ID=CPD.Uom
INNER JOIN ItemTypeDetails ITD ON SHD.ItemID=ITD.ID
INNER JOIN process PRC ON PRC.ID=CPO.Process
当然,这可能会影响性能