63 messaggi dal 15 aprile 2002
Ho una query o una tabella che mi ritorna dei valori come:


GRUPPO CAMPO2 CAMPO3
----------------------------------
001 REC01 Testo...
001 REC02 Testo...
001 REC03 Testo...
002 REC04 Testo...
002 REC05 Testo...
003 REC06 Testo...
003 REC07 Testo...
004 REC07 Testo...

Come posso ri-filtrare la query in modo da ottenere soltanto il primo record di ogni gruppo? Ovvero, ottenere:

GRUPPO CAMPO2 CAMPO3
----------------------------------
001 REC01 Testo...
002 REC04 Testo...
003 REC06 Testo...
004 REC07 Testo...

Grazie sin da ora!!!

... A journey to find The anwers inside ... our illusive mind ...
11 messaggi dal 28 luglio 2004
devi eseguire la query direttamente sul database o la devi usare con qualche linguaggio di scripting...tipo asp?
devi per forza farlo con un unica query?
252 messaggi dal 03 novembre 2003
Vedi le query con il comando "group by".
Preleva solo il codice, e il primo valore del Campo 2.

Ciao

Roby

it's not difficult to write, but is difficult write that you mean
1.024 messaggi dal 19 dicembre 2003
Contributi | Blog
Mi vengono in mente 2 soluzioni...

SELECT A.Gruppo, A.Campo2, B.Campo3
FROM
(
SELECT Gruppo, MIN(Campo2) Campo2
FROM MyTable
GROUP BY Gruppo
) A INNER JOIN MyTable B
ON A.Gruppo = B.Gruppo
AND A.Campo2 = B.Campo2

oppure

SELECT *
FROM MyTable A
WHERE Campo2 IN
(SELECT MIN(Campo2)
FROM MyTable B
WHERE A.Campo2 = B.Campo2)

Personalmente preferisco utilizzare la prima query, per evidenti ragioni di chiarezza del codice ma soprattutto per un più agevole troubleshooting in quanto la tabella derivata è facilmente "isolabile" dal resto dell'istruzione al fine di verificare che restituisca i risultati attesi.

Bye

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.