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