>Quindi selezionare il capo di abbigliamento con la revisione
>più alta possibile.
>E' possibile?
>Ho provato con un:
>
>select id, oggetto, max(rev) as rev from Tab1 ma non ci son riuscita...
Ciao Francesca,
Per ottenere il risultato che chiedi devi ricorrere ad una tabella derivata.
Nel seguente esempio utilizzerò una Common Table Expression:
USE tempdb;
CREATE TABLE dbo.foo(
ID int NOT NULL PRIMARY KEY,
OGGETTO varchar(10) NOT NULL,
REV int NOT NULL
);
INSERT dbo.foo VALUES
(1, 'GOLF', 1)
, (2, 'GONNA', 1)
, (3, 'GONNA', 2)
, (4, 'SLIP', 1)
, (5, 'SLIP', 3)
, (6, 'COLLANT', 1);
WITH CTE_GetKey(OGGETTO, REV) AS
(
SELECT OGGETTO, MAX(REV)
FROM dbo.foo
GROUP BY OGGETTO
)
SELECT F.*
FROM dbo.foo AS F
JOIN CTE_GetKey AS C
ON F.OGGETTO = C.OGGETTO
AND F.REV = C.REV
ORDER BY F.ID;
/* Output:
ID OGGETTO REV
----------- ---------- -----------
1 GOLF 1
3 GONNA 2
5 SLIP 3
6 COLLANT 1
(4 row(s) affected)
*/
DROP TABLE dbo.foo;
>Grazie!
Prego.
Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org