1.327 messaggi dal 09 ottobre 2003
www.gustoroma.it
esiste una funzione in sql server per estrarre solo record con la data più recente?
grazie

http://www.gustoroma.it/
1.976 messaggi dal 27 luglio 2005
Contributi
salve,
nandonando ha scritto:
esiste una funzione in sql server per estrarre solo record con la data più recente?
grazie


dipendentemente da "cosa" devi fare, sicuramente si
magari non utilizzando una "singola funzione", ma molto probabilmente utilizzando altre istruzioni relative al modo di operare set based..
ad esempio puoi utilizzare una subquery che ritorni la data "massima", ovvero un'esplosione di join, come di seguito..

SET NOCOUNT ON;
USE tempdb;
GO
CREATE TABLE dbo.TestTB (
Id int NOT NULL IDENTITY PRIMARY KEY,
col varchar(10) NOT NULL DEFAULT 'Pippo',
Data datetime NOT NULL
);
INSERT INTO dbo.TestTB VALUES ( DEFAULT , '20060101' );
INSERT INTO dbo.TestTB VALUES ( DEFAULT , '20050101' );
INSERT INTO dbo.TestTB VALUES ( DEFAULT , '20040101' );
INSERT INTO dbo.TestTB VALUES ( DEFAULT , '20070101' );
GO
PRINT 'Esplosione di join';
SELECT t.*
FROM dbo.TestTB t
JOIN (SELECT MAX(Data) AS [Data] FROM dbo.TestTB) j
ON j.Data = t.Data;

PRINt 'subquery';
SELECT t.*
FROM dbo.TestTB t
WHERE Data = (SELECT MAX(Data) AS [Data] FROM dbo.TestTB);

GO
DROP TABLE dbo.TestTB;
--<--------
Esplosione di join
Id col Data
----------- ---------- -----------------------
4 Pippo 2007-01-01 00:00:00.000

subquery
Id col Data
----------- ---------- -----------------------
4 Pippo 2007-01-01 00:00:00.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.