1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114
| --------------
START TRANSACTION
--------------
--------------
set session collation_connection = "latin1_general_ci"
--------------
--------------
DROP DATABASE IF EXISTS `base`
--------------
--------------
CREATE DATABASE IF NOT EXISTS `base`
DEFAULT CHARACTER SET `latin1`
DEFAULT COLLATE `latin1_general_cs`
--------------
--------------
DROP TABLE IF EXISTS `produit`
--------------
--------------
CREATE TABLE `produit`
( `codbarre` integer unsigned NOT NULL primary key,
`lib` varchar(255) NOT NULL,
`stocke` integer unsigned NOT NULL
) ENGINE=InnoDB
DEFAULT CHARSET=`latin1` COLLATE=`latin1_general_cs`
ROW_FORMAT=COMPRESSED
--------------
--------------
insert into `produit` (`codbarre`,`lib`,`stocke`) values
(78541245,'miel',100),(79451793,'jambon',50)
--------------
--------------
select * from `produit`
--------------
+----------+--------+--------+
| codbarre | lib | stocke |
+----------+--------+--------+
| 78541245 | miel | 100 |
| 79451793 | jambon | 50 |
+----------+--------+--------+
--------------
DROP TABLE IF EXISTS `vente`
--------------
--------------
CREATE TABLE `vente`
( `id` integer unsigned NOT NULL auto_increment primary key,
`codbarre` integer unsigned NOT NULL,
`qte` integer unsigned NOT NULL,
CONSTRAINT `FK_01` FOREIGN KEY (`codbarre`) REFERENCES `produit` (`codbarre`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB
DEFAULT CHARSET=`latin1` COLLATE=`latin1_general_cs`
ROW_FORMAT=COMPRESSED
--------------
--------------
insert into `vente` (`codbarre`,`qte`) values
(79451793,25),(78541245,10),(79451793,12),(78541245,5),(79451793,5)
--------------
--------------
select * from `vente`
--------------
+----+----------+-----+
| id | codbarre | qte |
+----+----------+-----+
| 1 | 79451793 | 25 |
| 2 | 78541245 | 10 |
| 3 | 79451793 | 12 |
| 4 | 78541245 | 5 |
| 5 | 79451793 | 5 |
+----+----------+-----+
--------------
drop view if exists `vue`
--------------
--------------
create view `vue` as
select t1.codbarre,
t1.lib,
t1.stocke as avant,
stocke - sum(t2.qte) as apres
from `produit` as t1
inner join `vente` as t2
on t2.codbarre = t1.codbarre
group by t1.codbarre
--------------
--------------
select * from `vue`
--------------
+----------+--------+-------+-------+
| codbarre | lib | avant | apres |
+----------+--------+-------+-------+
| 78541245 | miel | 100 | 85 |
| 79451793 | jambon | 50 | 8 |
+----------+--------+-------+-------+
--------------
COMMIT
--------------
Appuyez sur une touche pour continuer... |
Partager