Sembra che ce la abbiamo fatta,
Alla fine ho imparato anchio qualcosa su MySql
( era da tempo che volevo conoscerlo )
_______________________________________________
Ti passo direttamente i Dump ( si chiamano cosi in MySql ? )
da me su MySql 5.5 (Free) + Workbranch funzionano bene
__________________________________________________ ___
Crei un nuovo DB di nome "db07"
codice:
CREATE SCHEMA `db07` ;
__________________________________________________ ___
la struttura della tabella di nome 'tab':
codice:
CREATE TABLE `db07`.`tab` (
`Id` INT NOT NULL ,
`Data` DATE NULL ,
`DescrizMovimento` VARCHAR(45) NULL ,
`ImportoEntrato` INT NULL ,
`ImportoUscito` INT NULL ,
PRIMARY KEY (`Id`) );
__________________________________________________ ______
Un pò di dati casuali e senza nessun ordine:
codice:
INSERT INTO `db07`.`tab`
(`Id`, `Data`, `DescrizMovimento`, `ImportoEntrato`, `ImportoUscito`)
VALUES
(1, '2012-01-15', 'aaa', 100, null),
(2, '2012-01-15', 'bbb', null, 50),
(3, '2012-01-20', 'ccc', 20, null),
(4, '2012-01-20', 'ddd', null, 25),
(25, '2012-12-03', 'eee', null, null),
(12, '2012-08-13', 'fff', 5, 10),
(6, '2012-12-13', 'ggg', 50, 40),
(9, '2012-11-22', 'hhh', 25, null);
__________________________________________________ ____
La Vista 'q01'
codice:
USE `db07`;
CREATE OR REPLACE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `q01` AS
select
concat(cast(`tab`.`Data` as char(10) charset utf8),'_',right(concat('0000000000000000000000',`tab`.`Id`),20)) AS `Ord`,
`tab`.`Data` AS `Data`,
`tab`.`DescrizMovimento` AS `DescrizMovimento`,
`tab`.`ImportoEntrato` AS `ImportoEntrato`,
`tab`.`ImportoUscito` AS `ImportoUscito`,
(coalesce(`tab`.`ImportoEntrato`,'0') - coalesce(`tab`.`ImportoUscito`,'0')) AS `Dgg`
from
`tab`
;
__________________________________________________ ____
La Vista 'q05'
codice:
USE `db07`;
CREATE OR REPLACE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `q05` AS
select
`q01a`.`Ord` AS `Ord`,
`q01a`.`Data` AS `Data`,
`q01a`.`DescrizMovimento` AS `DescrizMovimento`,
`q01a`.`ImportoEntrato` AS `ImportoEntrato`,
`q01a`.`ImportoUscito` AS `ImportoUscito`,
sum(`q01b`.`Dgg`) AS `SaldoProgressivo`
from
(
`q01` `q01a` join `q01` `q01b`
on
((`q01a`.`Ord` >= `q01b`.`Ord`))
)
group by
`q01a`.`Ord`,
`q01a`.`Data`,
`q01a`.`DescrizMovimento`,
`q01a`.`ImportoEntrato`,
`q01a`.`ImportoUscito`
order by
`q01a`.`Ord`
;
__________________________________________________ ____
Finito