Hvordan laver man distinct hvor to rækker udgør sorteringen - i nedenstående sql får jeg duplikater i styleid og styleitemid. Hvis jeg fik lavet en sortering som fjernede duplikater i de 2 nøglerækker styleid og styleitemid var problemet løst - men hvordan gør man det? select distinct STYLEID AS STYLEID ,STYLEITEMID AS STYLEITEMID ,DATASORT AS STYLEDATASORT ,DATATYPE AS STYLEDATATYPE ,DATAGUIDE AS STYLEGUIDE ,DATAUNIT AS STYLEUNIT from
Hvilke datasort, -type, -guide, -unit, skal du så have pr. styleID og StyleitemID...?
SELECT STYLEID, STYLEITEMID, FIRST(DATASORT) AS STYLEDATASORT, FIRST(DATATYPE) AS STYLEDATATYPE, FIRST(DATAGUIDE) AS STYLEDATAGUIDE, FIRST(DATAUNIT) AS STYLEUNIT FROM pak_DATAS GROUP BY STYLEID, STYLEITEMID
forespørgslen kunne også have været lavet med LAST, MAX, MIN, AVG, SUM og så videre... du er bare nødt til at vælge HVILKEN info du vil have pr. distinct (GROUPED) style.
Det jeg ønsker er at få et sorteret udtræk, som kun tager rækker hvor nøglefeltet styleid og styleitemid kun optræder en gang. Det er sådan at fx. til styleid 79 er der 6 nøgler, men 2 a f dem er ens fx. styleid 79 optræder 2 gange med med styleitemid 510 - det er problemet. Resten af listen er kolonner, der skal følge hvert nøglefelt - altså ikke udelades. Kan det løses ved grupperet distinct på nøglefelterne?
Jo, men du er nødt til at vælge hvilke af dine data-værdi'er du vil have udvalgt sammen med den DISTINCTE nøgle...
Hvis det var sådan, at alle data i rækken med styleid=79 og styleitemid=510 var ens, så havde du jo slet ikke problemet, altså må du vælge hvilket sæt data du vil vise ved styleid=79 og styleitemid=510... Som illustreret i min første SQL.
CREATE VIEW distinctStyle (StyleID, StyleItemID) AS SELECT StyleID, StyleItemID FROM pak_DATAS GROUP BY StyleID, StyleItemID WHERE COUNT(*)=1;
SELECT D.StyleID, D.StyleItemID, P.DATASORT, P.DATATYPE, P.DATAGUIDE, P.DATAUNIT FROM distinctStyle D INNER JOIN pak_DATAS P ON D.StyleID=P.StyleID AND D.StyleItemID=P.StyleItemID;
Derved får du KUN de rækker fra din oprindelige tabel, som tilhører en style-kombination, som kun har een nøgleværdi !!! - et svar i en helt anden boldgade, men det kan være det er dér du vil hen...
Ja, de 2 selects ser rigtige ud (også den med view), men jeg får syntaks fejl, når jeg kører dem. Function unknown (FIRST) og view'et kan ikke oprettes.
Hvis jeg skal prøve at forklare problemet nærmere så vil det ideel være hvis man kunne lave en UNION med en tabel som har de rigtige styleid og styleitemid - sådan en har jeg, men den har kun fire felter og er kun ens med den anden i styleid og styleitemid. Nogen Ideer?
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.