Avatar billede -mundi- Nybegynder
31. august 2010 - 10:09 Der er 2 kommentarer og
1 løsning

Vælg mindste pris for liste af produkter

Hej eksperter,

Jeg har en tabel med produktpriser, og vil gerne have en liste over alle produkterne sammen med deres respektive mindste mindste pris, samt id på den forretning som har den mindste pris.

min tabel ser nogenlunde sådan her ud :
productid,priceproviderid,price
1,1,100
1,2,120
1,3,80
2,1,105
2,2,150
2,3,110
3,1,120
3,2,90
3,3,115
4,1,230
4,2,190
4,3,220

mit forventede resultat ville være
1,3,80
2,1,105
3,2,90
4,2,190

Det er muligt der er flere butikker der har den samme pris, og i det tilfælde er det ligemeget hvilket butiksid der vises

Databasen er en MSSQL 2008
Er der nogen der kan hjælpe ?
Avatar billede HenrikSjang Nybegynder
31. august 2010 - 10:45 #1
Du må lige selv erstatte "DinTabel" med dit rigtige tabelnavn:

;WITH CTE AS (
SELECT
    ROW_NUMBER() OVER(PARTITION BY ProductId ORDER BY Price) AS rn,
    *
FROM DinTabel
)
SELECT
    ProductId,
    PriceProviderId,
    Price
FROM CTE
WHERE rn = 1
Avatar billede -mundi- Nybegynder
31. august 2010 - 11:00 #2
Super, det ser ud til at virke som det skal :-)

Jeg har selv rodet mig frem til noget lignende :

SELECT *
FROM
(
SELECT ROW_NUMBER() OVER (PARTITION BY variationid ORDER BY productid,
price ASC) AS Ranking,
priceproviderid,
price,
productid
from
vwLatestCardPrices
) s
WHERE Ranking =1;

Det ser ud som om det er noget i samme stil. Men læg et svar så jeg kan give dig nogen point
Avatar billede HenrikSjang Nybegynder
31. august 2010 - 11:07 #3
:)
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester