196 messaggi dal 02 agosto 2007
Ciao, vorrei sapere se è possibile come scrivere una query sql che selezioni gli elementi in questo modo:

se due o più record hanno il campo serial_number uguale devo prendere quello con la data più vecchia
ad esempio se nella mia tabella ci sono questi record:

serial_number | data

001 | 10/12/2007
001 | 11/12/2007
002 | 11/12/2007
002 | 13/12/2007

La query dovrebbe ritornarmi come risultato la prima e la terza riga.
Grazie ciao!!!

Massimiliano
1.945 messaggi dal 27 luglio 2005
Contributi
salve,
maxxasp wrote:
Ciao, vorrei sapere se è possibile come scrivere una query sql che selezioni gli elementi in questo modo:

se due o più record hanno il campo serial_number uguale devo prendere quello con la data più vecchia
ad esempio se nella mia tabella ci sono questi record:

serial_number | data

001 | 10/12/2007
001 | 11/12/2007
002 | 11/12/2007
002 | 13/12/2007

La query dovrebbe ritornarmi come risultato la prima e la terza riga. Grazie ciao!!!

non indichi che rdbms tu sti utilizzando, ma penso tu possa tranquillamente operare un'aggregazione sul serial_number e ritornare il MIN(Data) di ogni raggruppamento, similarmente a
SET NOCOUNT ON;
USE tempdb;
GO
CREATE TABLE dbo.t (
serial_number varchar(10) NOT NULL,
Data datetime NOT NULL
);
GO
INSERT INTO dbo.t VALUES ( '001', '20071211' );
INSERT INTO dbo.t VALUES ( '001', '20071210' );

INSERT INTO dbo.t VALUES ( '002', '20071213' );
INSERT INTO dbo.t VALUES ( '002', '20071211' );

INSERT INTO dbo.t VALUES ( '003', '20071224' );
GO
SELECT serial_number, MIN(Data)
FROM dbo.t
GROUP BY serial_number;
GO
DROP TABLE dbo.t;
--<--------
serial_number
-----------
-----------------------
001 2007-12-10 00 0 0.000
002 2007-12-11 00 0 0.000
003 2007-12-24 00 0 0.000

saluti

Andrea Montanari
http://www.hotelsole.com - http://www.hotelsole.com/asql/index.php

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.