>>P.S.: non ci hai ancora detto con che DBMS stai lavorando (e versione)...
>L'avevo scritto nel titolo
Giusto, svista mia
>Vediamo se riesco a stò giro:
Con i dati forniti cambia il risultato della prima riga rispetto a quanto postato in precedenza:
USE tempdb;
CREATE TABLE dbo.Operazioni(
idOperazione int NOT NULL IDENTITY PRIMARY KEY,
idConto int NOT NULL,
Data date NOT NULL,
Nota char(3) NOT NULL,
DARE int NOT NULL,
AVERE int NOT NULL,
REM bit NOT NULL
);
INSERT dbo.Operazioni VALUES
(1, '20090706', 'AAA', 1000, 0, 1)
, (1, '20090706', 'BBB', 1000, 0, 0)
, (1, '20090706', 'CCC', 2000, 0, 1)
, (1, '20090706', 'DDD', 3000, 0, 0)
, (2, '20090706', 'EEE', 1000, 0, 1)
, (2, '20090706', 'FFF', 1000, 0, 1)
, (2, '20090706', 'GGG', 1000, 0, 0);
SELECT
idConto
, SUM(DARE) AS Dare
, SUM(AVERE) AS Avere
, SUM(CASE REM
WHEN 1 THEN DARE
ELSE 0
END
) AS [Dare REM]
, SUM(CASE REM
WHEN 1 THEN AVERE
ELSE 0
END
) AS [Avere REM]
FROM dbo.Operazioni
GROUP BY idConto;
/* Output:
idConto Dare Avere Dare REM Avere REM
----------- ----------- ----------- ----------- -----------
1 7000 0 3000 0
2 3000 0 2000 0
(2 row(s) affected)
*/
DROP TABLE dbo.Operazioni;
Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org