Re: [SQL ] 請問join後如何不顯示重複的資料

看板Database作者 (小富哥~~~)時間15年前 (2010/06/12 10:18), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串4/4 (看更多)
※ 引述《rookie (rookie)》之銘言: : 您好 : 我使用的是MS SQL 2005 : 想請教二個SQL的問題,謝謝 : 1、顯示不重複的資料可以使用DISTINCT, : 但如何找出資料重複的部份呢? : 2、 : ASTMB TABLE : MB001 資產編號 : MB002 資產名稱 : MB003 資產規格 : MB012 數量 : ASTMC table : MC001 資產編號 : MC002 部門代號 : MC003 保管人 : CMSME table : ME001 部門代號 : ME002 部門名稱 : CMSMV table : MV001 員工代號 : MV002 姓名 : select MB001, MB002,MB003,MC.MC002,ME.ME002,MC.MC003,MB016 : from ASTMB MB LEFT JOIN ASTMC MC ON MB.MB001=MC.MC001 : LEFT JOIN CMSMV MV ON MC.MC003=MV.MV001 : LEFT JOIN CMSME ME ON MC.MC002=ME.ME001 : WHERE MB012>0 : 因同一資產數量若大於1,則有可能有多個不同的「保管人」 : 導致在ASTMB MB LEFT JOIN ASTMC MC ON MB.MB001=MC.MC001 : 時會同一資產會重複顯示? : 我只想要讓資產編號出現一次,請問如何解決呢?謝謝 您好,我不會MS SQL,提供個想法來討論,我想MSSQL應該是做的出來的。 我在ORACLE上是可以辦到的。 (1)將您上述SQL依「資產編號」 GROUP BY 再產生另一欄位,並依 此進行群組內編號,如下例: 群組內編號 資產編號 資產名稱 部門代號 部門名稱 姓名 數量 1 P1 A D1 X I 2 2 P1 A D1 X J 2 3 P1 A D2 Y K 2 1 P2 B D1 X I 1 1 P3 C D1 X J 2 2 P3 C D3 Z L 2 1 P4 D D1 X I 2 2 P4 D D2 Y J 2 3 P4 D D3 Z L 2 (2)再依「群組內編號」欄位判斷「資產編號」與「資產名稱」是否呈現 IF 群組內編號 > 1 THEN 資產編號、資產名稱 設為 NULL 如下例: 群組內編號 資產編號 資產名稱 部門代號 部門名稱 姓名 數量 1 P1 A D1 X I 2 2 D1 X J 2 3 D2 Y K 2 1 P2 B D1 X I 1 1 P3 C D1 X J 2 2 D3 Z L 2 1 P4 D D1 X I 2 2 D2 Y J 2 3 D3 Z L 2 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 123.240.166.92
文章代碼(AID): #1C4kvjE- (Database)
討論串 (同標題文章)
文章代碼(AID): #1C4kvjE- (Database)