21. juli 2004 - 15:59Der er
6 kommentarer og 1 løsning
lave top 25 pr. id
Jeg har to tabeller. En med ca. 60 unikke 4 cifrede Vare ID. En anden har både køb pr vare ID. Jeg vil gerne lave en ny tabel eller en forespørgsel, der tager de 25 største køb pr. vare ID. Dvs. alle vare ID skal komme ud med de 25 største køb.
SELECT TOP 25 Tabel.VareID, Tabel.VareKøb FROM Tabel WHERE (((Tabel.VareID)=1)) ORDER BY Tabel.VareKøb DESC UNION SELECT TOP 25 Tabel.VareID, Tabel.VareKøb FROM Tabel WHERE (((Tabel.VareID)=2)) ORDER BY Tabel.VareKøb DESC;
Du skal IKKE bruge UNION til dette, derimod noget a'la dette (Jeg kender desværre ikke dine tabel- og feltnavne, så jeg har måttet gætte):
SELECT K.* FROM VareKøb AS K WHERE K.Pris In (SELECT TOP 2 Pris FROM VareKøb WHERE Vare=K.Vare ORDER BY Pris DESC)
Du er kun nødt til at medtage din Vare-tabel, hvis du skal have vist nogle data fra denne, som ikke er med i varekøbstabellen... fx. varenavn el. lign. Dette kan gøres som følger:
SELECT V.VareNavn, K.* FROM Varer AS V INNER JOIN VareKøb AS K ON V.Vare=K.Vare WHERE K.Pris In (SELECT TOP 2 Pris FROM VareKøb WHERE Vare=K.Vare ORDER BY Pris DESC)
ProAccess: Kan du ikke give mig en forklaring på hvad du refererer til med: v,k og hhv. v.varenavn og k.pris. Dit svar virker ret lovende, så jeg vil gerne lige afprøve det, inden jeg tildeler point.
Jeg går ud fra at din tabel med varedata hedder "Varer" og tabellen med købsdata så hedder "VareKøb", i FROM-delen af SQL'en bliver de så forkortet til henholdsvis V og K. Ligeledes går jeg ud fra at der findes en kolonne i begge tabeller, som hedder "Vare", og som henviser til den vare, der købes... og at du vil sortere posterne ud fra en kolonne, som hedder "Pris"
ERGO: SELECT V.VareNavn, K.* FROM Varer AS V INNER JOIN VareKøb AS K ON V.Vare=K.Vare WHERE K.Pris IN (SELECT TOP 25 Pris FROM VareKøb WHERE Vare=K.Vare ORDER BY Pris DESC)
betyder: HENT varenavn fra varestamdata og alle kolonner fra varekøb hvor det er Vare(nummer), som binder tabellerne sammen HVOR prisen for varekøbet er i de 25 største priser for den pågældende vare.
Jo tak. Det var også det jeg regnede med. Jeg ville bare være sikker (du havde såmænd ikke behøvet at oversætte). Jeg har af prøvet det. Og det ser ok ud. Men kan bare ikke håndtere, at der har været mange køb til den samme pris. Tak for hjælpen, men jeg at se om jeg kan finde en anden 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.