Többször szereplő kódok lekérdezése
2022-02-07T17:42:29+01:00
2022-02-07T21:17:57+01:00
2022-08-12T07:20:30+02:00
bogár
Sziasztok!
Szeretném legyűjteni egy táblából azokat a sorokat, ahol a TERMEKKOD első 5 számjegye legalább két sorban megegyezik (a TERMEKKOD 6-10. karaktere vegyesen betű és szám, azok el is térhetnek a lekérdezett duplikációkban, az első 5 jegy azonossága a lényeg).
Próbáltam így, de a SUBSTR ellenére csak azokat gyűjti le, ahol a teljes termékkódok megegyeznek:

SELECT TABLA.KOD, TABLA.PARTNER, TABLA.TERMEKKOD FROM TABLA, (SELECT SUBSTR(TABLA2.TERMEKKOD,1,5) DUP FROM TABLA TABLA2 GROUP BY TABLA2.TERMEKKOD HAVING count(SUBSTR(TABLA2.TERMEKKOD,1,5)) >1) DUPLAKODOK WHERE SUBSTR(TABLA.TERMEKKOD,1,5)=DUP ORDER BY TABLA.TERMEKKOD
Hogyan lehetne csak a termékkódok elejére elvégezni a duplikátumok lekérdezését? Köszönöm szépen a segítséget! bogár
Mutasd a teljes hozzászólást!
Kezdetnek:

SELECT SUBSTR(t.TERMEKKOD,1,5) kod5, COUNT(*) db FROM TABLA GROUP BY SUBSTR(t.TERMEKKOD,1,5) kod5 HAVING COUNT(*)>=2;
Ezt még felhasználhatod nested select-ként:

SELECT a.kod5,b.TERMEKKOD FROM (lasd fent) a, TABLE b WHERE a.kod5=SUBSTR(b.TERMEKKOD,1,5) ORDER BY b.TERMEKKOD;
Mutasd a teljes hozzászólást!

  • Szia NevemTeve! Nagyon köszönöm, sikerült adaptálnom, tökéletesen működik. : ))

    Ennyit igazítottam:
    SELECT SUBSTR(t.TERMEKKOD,1,5) kod5, COUNT(*) db FROM TABLA t
    GROUP BY SUBSTR(t.TERMEKKOD,1,5) HAVING COUNT(*)>=2;

    SELECT a.kod5,b.TERMEKKOD FROM
    (lasd fent) a, TABLE b
    WHERE a.kod5=SUBSTR(b.TERMEKKOD,1,5)
    ORDER BY b.TERMEKKOD;

    Köszönöm szépen a megoldást és az idődet!
    Mutasd a teljes hozzászólást!
abcd