Torna al Thread
USE tempdb;
CREATE TABLE dbo.movimenti_agenzie (
id_movimenti_agenzie numeric(18, 0) NOT NULL ,
id_agenzia numeric(18, 0) NOT NULL ,
tipo numeric(18, 0) NOT NULL ,
descrizione varchar (50) ,
importo money NOT NULL ,
saldo money NOT NULL ,
data_operazione datetime NOT NULL ,
data_inserimento datetime NOT NULL ,
saldo_dollari money NULL ,
importo_dollari money NULL
);
INSERT dbo.movimenti_agenzie VALUES(243706, 41, 0, '1', 41.24, -11215.31, '20070521', '20070521 15:08:23', 0, 0);
INSERT dbo.movimenti_agenzie VALUES(243707, 51, 0, '1', 200.54, -3301.75, '20060102 13:43:03', '20070521 15:08:27', 12, 0);
INSERT dbo.movimenti_agenzie VALUES(243708, 51, 0, '1', 461.64, -3763.39, '20060102 16:18:01', '20070521 15:08:27', 12, 0);
INSERT dbo.movimenti_agenzie VALUES(243709, 51, 0, '1', 223.8, -3986.77, '20060102 16:43:55', '20070521 15:08:27', 12, 0);
/* quello che vorrei ottenere è l'ultimo saldo in ordine di data per ogni singola agenzia */
SELECT MA.id_agenzia, MA.saldo
FROM dbo.movimenti_agenzie AS MA
JOIN (
SELECT id_agenzia, MAX(data_operazione) AS UltimaOperazione
FROM dbo.movimenti_agenzie
GROUP BY id_agenzia
) AS Q
ON MA.id_agenzia = Q.id_agenzia
AND MA.data_operazione = Q.UltimaOperazione;
/* Output:
id_agenzia saldo
--------------------------------------- ---------------------
51 -3986,77
41 -11215,31
(2 row(s) affected)
*/
DROP TABLE dbo.movimenti_agenzie;