webForumDet fria alternativet

Mysql SQL-fråga - DISTINCT o MIN?

4 svar · 316 visningar · startad av Mannen

MannenMedlem sedan jan. 2003247 inlägg
#1

Tjenare
Har fått problem med en sql-fråga.
Jag har en tabell som ser ut som nedan.

tblKalkyl:
kalkStoreID, kalkPrice, kalkStoreNamn, kalkSprID, kalkSprNamn, kalkActive

Jag vill få ut de Distincta poster i kalkSprID som har den lägsta kalkPrice men då kalkPrice inte är siffran 0.

Sedan vill jag få ut kalkStoreID, kalkPrice, kalkStoreNamn, kalkSprID, kalkSprNamn, kalkActive

Förstår ni inte vad jag menar så säg till :)
Tack på förhand, Gött nytt år alla! :)

LarsGMedlem sedan dec. 200012 464 inlägg
#2
select k1.kalksprid,
k1.KalkPrice,
k1.kalkStoreName, 
k1.kalkSprNamn, 
k1.kalkActive
from tblKalkyl k1 join tblKalkyl k2
on k1.kalksprid = k2.kalksprid
group by k1.kalksprid,
k1.KalkPrice,
k1.kalkStoreName, 
k1.kalkSprNamn, 
k1.kalkActive
having k1.KalkPrice = min(k2.kalkPrice)
MannenMedlem sedan jan. 2003247 inlägg
#3

Tack för svaret, jag är verkligen tacksam.
Det verkar dock som om du missade att jag inte ville att resultatet kalkPrice=0 skulle vara med som det minsta. Går detta att lösa i SQL satasen eller måste jag fixa det på annat sätt?

LarsGMedlem sedan dec. 200012 464 inlägg
#4

Det är ju det minsta problemet

select k1.kalksprid,
k1.KalkPrice,
k1.kalkStoreName, 
k1.kalkSprNamn, 
k1.kalkActive
from tblKalkyl k1 join tblKalkyl k2
on k1.kalksprid = k2.kalksprid
where k2.kalkprice > 0
group by k1.kalksprid,
k1.KalkPrice,
k1.kalkStoreName, 
k1.kalkSprNamn, 
k1.kalkActive
having k1.KalkPrice = min(k2.kalkPrice)
MannenMedlem sedan jan. 2003247 inlägg
#5

Tack så mycket. Jag har verkligen problem med dessa lite mer invecklade frågorna. Vart kan man lära sig detta på ett bra sätt?

Ett tips skulle vara fint :)

134 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)