Premiär! Fyndchans i SweClockers Månadens Drop
Permalänk
Medlem

SQL fråga klurigher

Hej!

Jag ska ur lagret plocka fram när vissa ordernummer togs emot, problemet är att ett ordernummer är kopplad till enskilda artiklar som kan ha lossats över ett span av datum.

när jag kör.

(transaction=10 betyder in i lagret)

SELECT DISTINCT ordernr, datum
FROM Store
WHERE (transaction = 10)
ORDER BY datum

Detta leder till att jag får ett datum, vilket som helst mellan först lossad och sist lossad.
Går det att visa datumet för först förekommande, eller sist förekommande?

Visa signatur

K#

Permalänk
Hedersmedlem

Prova Max() eller Min() på datumet. Du behöver då också lägga till GROUP BY ordernr.

Visa signatur

Använd gilla för att markera nyttiga inlägg!

Permalänk
Medlem
Skrivet av giplet:

Prova Max() eller Min() på datumet. Du behöver då också lägga till GROUP BY ordernr.

Är nåt på spåret, kruxet nu är att den listar alla datum, vill endast ha ett datum per ordernr.
Testade distinct MAX(datum) men det verkade inte funka..

Visa signatur

K#

Permalänk
Hedersmedlem
Skrivet av atman:

Är nåt på spåret, kruxet nu är att den listar alla datum, vill endast ha ett datum per ordernr.
Testade distinct MAX(datum) men det verkade inte funka..

Och du la även till GROUP BY? Dessutom tycker jag inte att DISTINCT bör göra någon skillnad om du använder Max eller Min, så den hade jag tagit bort.

SELECT ordernr, Min(datum) AS forstadatum FROM Store WHERE (transaction = 10) GROUP BY ordernr

Visa signatur

Använd gilla för att markera nyttiga inlägg!

Permalänk
Medlem
Skrivet av giplet:

Och du la även till GROUP BY? Dessutom tycker jag inte att DISTINCT bör göra någon skillnad om du använder Max eller Min, så den hade jag tagit bort.

SELECT ordernr, Min(datum) AS forstadatum FROM Store WHERE (transaction = 10) GROUP BY ordernr

Kanon, nu funkade det.. körde group by ordernr, datum... *doh*

Tack för hjälpen.

Visa signatur

K#