59 messaggi dal 06 aprile 2007
Mi spiego meglio, avendo un tabella con questi dati:

ARTICOLO DATA ULTIMOCOSTO
A 10/10/2007 10
B 12/10/2007 12
A 10/11/2007 9
B 12/11/2007 13

ho necessità di estrarre per ogni articolo l'ultimo costo, ed ottenere il seguente risultato

ARTICOLO DATA ULTIMOCOSTO
A 10/11/2007 9
B 12/11/2007 13

Ho provato con le varie opzioni di group by ma non ci sono riuscito, avete qualche suggerimento
1.976 messaggi dal 27 luglio 2005
Contributi
salve,
fuvell wrote:
Mi spiego meglio, avendo un tabella con questi dati:
ARTICOLO DATA ULTIMOCOSTO
A 10/10/2007 10
B 12/10/2007 12
A 10/11/2007 9
B 12/11/2007 13

ho necessità di estrarre per ogni articolo l'ultimo costo, ed ottenere il seguente risultato

ARTICOLO DATA ULTIMOCOSTO
A 10/11/2007 9
B 12/11/2007 13

Ho provato con le varie opzioni di group by ma non ci sono riuscito, avete qualche suggerimento

qnche tu non indichi quale rdbms tu stia utilizzando, e rendero' quindi una soluzione valida per SQL Server...
puoi in effetti utilizzare una subquery che raggruppi per articolo, ottenendo il MAX(Data) del raggruppamento e quindi mettere in join la tabella con la subquery ottenuta, similarmente a

SET NOCOUNT ON;
USE tempdb;
GO
CREATE TABLE dbo.t (
articolo varchar(10) NOT NULL,
data datetime NOT NULL,
ultimocosto decimal (18,4) NOT NULL DEFAULT 0
);
GO
INSERT INTO dbo.t VALUES ( 'A', '20071010', 10 );
INSERT INTO dbo.t VALUES ( 'B', '20071012', 12 );
INSERT INTO dbo.t VALUES ( 'A', '20071011', 9 );
INSERT INTO dbo.t VALUES ( 'B', '20071112', 13 );
GO
SELECT t.articolo, t.Data, t.ultimocosto
FROM dbo.t t
JOIN
(SELECT articolo, MAX(Data) AS [Data]
FROM dbo.t
GROUP BY articolo
) AS q
ON t.articolo = q.articolo AND t.Data = q.Data
ORDER BY Data, articolo;

GO
DROP TABLE dbo.t;
--<--------
articolo Data ultimocosto
--------
---------------------
-------------------------------------
A 2007-10-11 00 0 0.000 9.0000
B 2007-11-12 00 0 0.000 13.0000

saluti

Andrea Montanari
http://www.hotelsole.com - http://www.hotelsole.com/asql/index.php
59 messaggi dal 06 aprile 2007
grazie per il suggerimento, una soluzione con più select l'ho scartata perchè l'archivio articoli è molto grande e temo un decadimento eccessivo delle prestazioni.

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.