Hej! <code> Varför funkar inte group by?Problem med view i SQL-server
Jag undrar om det är någon som kan komma med någon smart idé om hur jag ska lösa mitt problem.
Jag har en view i SQL-server som ungefär ser ut som följer:
SELECT tabell1.kolumn1, tabell1.kolumn2, tabell1.kolumn3 FROM tabell INNER JOIN
tabell1 ON tabell2.kolumn1 = tabell1.kolumn1 LEFT OUTER JOIN
tabell2 ON tabell1.kolumn2 = tabell2.kolumn2 LEFT OUTER JOIN
tabell3 ON tabell1.kolumn3 = tabell3.kolumn3
Vi kan säga att kolumn1 i tabell1är ett kundnummer och kolumn2 i tabell1 är ordernummer. Det kan alltså förekomma flera tupler med samma kundnummer men olika ordernummer. Jag skulle vilja att man kan lista (i en datagrid) alla kunder, alltså de får bara synas en gång, men det ska vara den tupeln om har det högsta ordernumret, det vill säga det senaste...
Jag har provat med unique, distinct och group by, men ingenting funkar. Blir snart tokig. Är det möjligt att göra det i SQL Server eller ska jag hårdkoda in det i stället?
Tacksam för svar snarast!Sv: Problem med view i SQL-server
select <kolumner>
from orders as q
where orderNumber in
(select max(orderNumber)
from orders as o
where o.kundNummer = q.kundNummer)
</code>Sv:Problem med view i SQL-server
Testa något i den här stilen:
<CODE>
SELECT a.kundnamn, a.kundnr, MAX(b.ordernr)
FROM kunder a, orders b
WHERE a.kundnr = b.kundnr
GROUP BY a.kundnamn, a.kundnr
</CODE>
Om du skriver ut din riktiga select-sats istf pseudokod, så kan du få ett mer exakt svar.
/Pelle