Avatar billede kxh Nybegynder
29. november 2005 - 08:41 Der er 4 kommentarer og
1 løsning

SQL Forespørgsel

Hej

jeg har en tabel:
Created,    MaterialeGroup, Type      Lokation
2005-11-02  700            1000293  11
2005-11-02  700            1000294  12
2005-11-02  700            1000265  14
2005-11-05  578            2003202  232
2005-11-05  578            2003421  233

Created er en datatime, så den er angivet med med dato og tid

Det jeg vil have er et udtræk hvor jeg får vist en række pr. materialegroup, og det skal være den nyeste række.
Hvordan kan man det.

// Kim Hansen
Avatar billede hmortensen Nybegynder
29. november 2005 - 08:44 #1
Må blive:
SELECT * FROM tabel GROUP BY MaterialeGroup ORDER BY Created DESC
Avatar billede kxh Nybegynder
29. november 2005 - 08:50 #2
Hej

Ja lidt i den stil, men jeg vil kun have 1 række pr materialegroup

// Kim
Avatar billede moller2567 Nybegynder
02. december 2005 - 22:51 #3
SELECT DISTINCT MaterialGroup, MAX(Created) AS Nyeste
FROM tabel
GROUP BY MaterialGroup
ORDER BY MaterialGroup
Avatar billede kxh Nybegynder
05. december 2005 - 07:37 #4
Hej Moller

Hvis jeg vil have de sidste felter på hvordan gør jeg det, hvis jeg sætter
dem i select stringen, får jeg flere instanser af en materialegroup, og det vil jeg ikke have, kun den nyeste.

// Kim
Avatar billede moller2567 Nybegynder
05. december 2005 - 14:45 #5
Den er straks værre. Så tror jeg du skal ud i en flettet forespørgsel, hvor du fletter tabellen med sig selv. Noget i stil med:

SELECT *
FROM tabel ta1
WHERE ta1.created IN (
  SELECT DISTINCT ta2.MAX(Created), ta2.MaterialGroup
  FROM tabel ta2
  GROUP BY ta2.MaterialGroup
  ORDER BY ta2.MaterialGroup
)

Jeg er ikke sikker på, at den virker, det ville være nemmere, hvis du havde en "id" kolonne, så der var et entydigt felt, der kunne flette de to forespørgsler sammen.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester