Sql server 2008 r2 我使用内部联接,但记录是重复的,尽管我使用了;独特的;及;分组方式;在SQLServer2008R2中为什么?
这是我运行此命令时的查询,它会给我重复的记录,但我删除了sd.StyleID=PLOH.StyleID上的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
内部连接规划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
当然,这可能会影响性能