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 ?
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
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