我正在製作一個表,其中有一個需要包含唯一值的特定列,我試圖使用this問題的解決方案。不過,我似乎無法正確解決問題。刪除基於表的一列的重複值
這裏是我的SQL:現在
SELECT DISTINCT tabArtikel.ArtCode, tabArtikelLeverancierDetail.AldArtCodeBijLeverancier,
tabArtikel.ArtOms, vwKMBVoorraad.MagVoorraad, vwKMBVoorraad.LocNaam,
tabArtikelLeverancierDetail.AldInkoopPrijs, tabVoorraadMutatie.VrdMutDatum, tabNawFile.NawFilNummer
FROM KingSystem.tabArtikel tabArtikel,
KingSystem.tabArtikelLeverancier tabArtikelLeverancier,
KingSystem.tabArtikelLeverancierDetail tabArtikelLeverancierDetail,
KingSystem.tabNawFile tabNawFile,
KingSystem.tabVoorraadMutatie tabVoorraadMutatie,
KingSystem.vwKMBVoorraad vwKMBVoorraad
WHERE vwKMBVoorraad.ArtGid = tabArtikel.ArtGid
AND tabArtikelLeverancier.ArtLevArtGid = tabArtikel.ArtGid
AND tabArtikelLeverancierDetail.AldArtLevGid = tabArtikelLeverancier.ArtLevGid
AND tabVoorraadMutatie.VrdMutArtGid = tabArtikel.ArtGid
AND tabNawFile.NawFilNawGid = tabArtikelLeverancier.ArtLevNawGid
AND ((vwKMBVoorraad.MagVoorraad>0) AND (tabArtikel.ArtCode Not Like 'V%'))
ORDER BY tabVoorraadMutatie.VrdMutDatum DESC
,還有一兩件事。在ArtCode重複值被刪除之前,VrdMutDatum的日期需要首先降序排序。
我不知道這是否是所有必要的信息,所以,如果你需要我張貼別的其他然後上面,然後讓我知道
附:我這樣做是因爲輸出包含125K +行,當它應該只有5K行
我從上面的鏈接實現代碼嘗試:
SELECT tabArtikel.ArtCode, tabVoorraadMutatie.VrdMutDatum
FROM KingSystem.tabArtikel INNER JOIN
(SELECT tabVoorraadMutatie.*, ROW_NUMBER() OVER (PARTITION BY ArtCode ORDER BY date DESC) AS seqnum)
FROM history tabVoorraadMutatie
) tabArtikel, KingSystem.tabVoorraadMutatie tabVoorraadMutatie
WHERE tabArtikel.ArtGid = tabVoorraadMutatie.VrdMutArtGid
ON tabArtikel.ArtCode = tabVoorraadMutatie.VrdMutDatum AND seqnum = 1
ORDER BY tabArtikel.ArtCode, tabVoorraadMutatie.date
提示1:較短的表別名! – jarlh
提示2:使用正確的連接語法! – fancyPants
@fancyPants你的意思是INNER JOIN?我嘗試使用郵件中發佈的鏈接中的代碼,但它沒有幫助。我把它編輯爲:(在P.S.下面的部分) –