webForumDet fria alternativet
Logga in / Bli medlem

Mysql SQL-fråga - DISTINCT o MIN?

Databaser & SQL

4 svar · 316 visningar · startad av Mannen

Medlem sedan jan. 2003247 inlägg
Trådstart#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! :)

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

Medlem 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)
Medlem 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 :)

375 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
120 ms — deklarationer (db)
124 ms — hämta statistik (db)
128 ms — hämta tråd, inlägg och bilagor (db)
119 ms — ändringar (db)