15. marts 2005 - 15:50Der er
4 kommentarer og 1 løsning
DISTINCT i stored procedure
Jeg har følgende stored procedure:
SELECT menupunkt.link AS plink, menu.* FROM menu INNER JOIN menupunkt ON menu.menuid = menupunkt.menuid WHERE (menu.synlig = 1) AND (menupunkt.synlig = 1) AND (menu.portalid = @portalid) ORDER BY menu.placering, menupunkt.placering
Den udskriver fra menu, hvor der er tilhørende punkter i menupunkt.
Men hvis der er flere menupunkter der tilhører menu, udskriver den flere linier med ens menu.navn
Jeg skal have påført en DISTINCT så den kun udskriver hver menu.navn en gang..
Håber det er til at forstå, er selv ved at blive forvirret :-)
Det ser ud som du selekterer en del forskellige kolonner i din select setning. Ønsker du en distinct på kun nogle få af disse kolonner?
I så fald er det måske en GROUP BY du skal bruge.
Men se i første omgang om du kan bruge
SELECT DISTINCT menupunkt.link AS plink, menu.* FROM menu INNER JOIN menupunkt ON menu.menuid = menupunkt.menuid WHERE (menu.synlig = 1) AND (menupunkt.synlig = 1) AND (menu.portalid = @portalid) ORDER BY menu.placering, menupunkt.placering
menu ------- menuid placering navn beskrivelse link target synlig type portalid
menupunkt ------- punktid placering navn beskrivelse link target synlig type portalid
Det jeg gerne vil frem til er følgende:
Jeg vil have alle poster i [menu] hvor portalid er = med f.eks. 5. Samtidig vil jeg for hver post fra [menu], have udtrukket den første post [menupunkt.link] fra [menupunkt] hvor [menupunkt.menuid] = [menu.menuid]
Som det er nu får jeg trukket f.eks 3 linier ud med det samme menuid, da der findes 3 poster i menupunkt med det samme menuid
lukker dette spørgsmål, og opretter en anden da der ikke er kommet nogen løsning
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.