Bonjour à tous,
J'aurai besoin d'une aide pour réaliser une requete mysql.
J'ai un table emballage et une table inventaire_emb. Je voudrait réaliser
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 -- Structure de la table `inventaire_emb` -- CREATE TABLE `inventaire_emb` ( `id_inventaire_emb` int(11) NOT NULL auto_increment, `date_inventaire_emb` date NOT NULL, `qte_inventaire_emb` decimal(10,5) NOT NULL, `id_emb` int(11) NOT NULL, `mois_inventaire_emb` int(11) NOT NULL, `annee_inventaire_emb` int(11) NOT NULL, `pu_j_inventaire_emb` decimal(10,5) NOT NULL, PRIMARY KEY (`id_inventaire_emb`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=31 ; -- -- Contenu de la table `inventaire_emb` -- INSERT INTO `inventaire_emb` (`id_inventaire_emb`, `date_inventaire_emb`, `qte_inventaire_emb`, `id_emb`, `mois_inventaire_emb`, `annee_inventaire_emb`, `pu_j_inventaire_emb`) VALUES (1, '2008-06-11', 1.00000, 6, 2, 2008, 0.12900), (2, '2008-06-11', 2.00000, 8, 2, 2008, 0.04280), (3, '2008-06-11', 3.00000, 27, 2, 2008, 0.26690), (4, '2008-06-11', 4.00000, 28, 2, 2008, 0.23900), (5, '2008-06-11', 5.00000, 30, 2, 2008, 0.13750), (6, '2008-06-11', 6.00000, 4, 2, 2008, 4.13000), (7, '2008-06-11', 7.00000, 57, 2, 2008, 0.78000), (8, '2008-06-11', 8.00000, 3, 2, 2008, 5.15000), (9, '2008-06-11', 9.00000, 5, 2, 2008, 24.84000), (10, '2008-06-11', 1.00000, 16, 2, 2008, 0.00958), (11, '2008-06-11', 2.00000, 18, 2, 2008, 0.00894), (12, '2008-06-11', 3.00000, 20, 2, 2008, 0.02996), (13, '2008-06-11', 4.00000, 22, 2, 2008, 0.04494), (14, '2008-06-11', 5.00000, 17, 2, 2008, 0.00958), (15, '2008-06-11', 6.00000, 19, 2, 2008, 0.02996), (16, '2008-06-11', 7.00000, 21, 2, 2008, 0.04494), (17, '2008-06-11', 8.00000, 23, 2, 2008, 0.01050), (18, '2008-06-11', 9.00000, 14, 2, 2008, 2.89000), (19, '2008-06-11', 1.00000, 49, 2, 2008, 0.03150),Chaque mois l'utilisateur va rentrer l'inventaire pour l'emballage, mais l'utilisateur peut faire l'inventaire en plusieurs fois. Donc quand l'utilisateur arrive sur la page il sélectionne la date de l'inventaire (ex: 05 2008). La page se charge avec tout les produit qui ne sont pas enregistré dans la table inventaire_emb avec comme date 05 2008. Il enregistrer certain inventaire emballage, il valide. 5 minutes après il retourne sur la page et sélectionne toujours la même date et donc devrait afficher tout les emballage sauf ceux qui sont déjà enregistré dans l'inventaire_emb.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 -- Structure de la table `emballage` -- CREATE TABLE `emballage` ( `id_emb` int(11) NOT NULL auto_increment, `nom_emb` varchar(50) NOT NULL, `id_four` int(11) NOT NULL, `cond_emb` int(11) default NULL, `id_conditionnement` int(30) default NULL, `pu_emb` decimal(10,5) NOT NULL COMMENT 'prix unitaire emballage', `tva_emb` decimal(3,2) default NULL, `id_conditionnement_pu` int(30) NOT NULL, `coef_emb_pdr` decimal(10,5) default NULL, `pu_emb_pdr` decimal(10,5) default NULL, `composup25_emb` varchar(30) default NULL, `date_m_emb` date default NULL, `id_emballage_type` int(11) NOT NULL, `actif_emb` tinyint(1) NOT NULL default '1', PRIMARY KEY (`id_emb`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=74 ; -- -- Contenu de la table `emballage` -- INSERT INTO `emballage` (`id_emb`, `nom_emb`, `id_four`, `cond_emb`, `id_conditionnement`, `pu_emb`, `tva_emb`, `id_conditionnement_pu`, `coef_emb_pdr`, `pu_emb_pdr`, `composup25_emb`, `date_m_emb`, `id_emballage_type`, `actif_emb`) VALUES (1, 'Sacs P.E 450X150X700 /1500 Bleu ', 33, 1000, 3, 0.04318, 9.99, 3, 1.00000, 0.04318, '', '0000-00-00', 1, 1), (2, 'Sacs P.E 450X150X700 /1500 Blanc', 33, 1000, 3, 0.02557, 9.99, 3, 1.00000, 0.02557, '', '0000-00-00', 1, 1), (3, 'Rouleaux Scotch Pp 50Mm X 660M pr', 31, 6, 3, 5.15000, 9.99, 3, 0.00152, 0.00780, '', '0000-00-00', 1, 1), (4, 'Film Etirable Manuel 15µ 300M pr', 31, 6, 3, 4.13000, 9.99, 3, 0.00332, 0.01370, '', '0000-00-00', 1, 1), (5, 'Cerclage 12Mm*0,63', 31, 1, 3, 24.84000, 9.99, 3, 0.00026, 0.00655, '', '0000-00-00', 1, 1), (6, 'M. Alu Diam / To 231 (Chinois', 28, 600, 3, 0.12900, 9.99, 3, 0.00000, 0.00000, '', '0000-00-00', 1, 1), (7, 'Moule À Cake Plié 203 X 93 X 5', 40, 1000, 3, 0.09460, 9.99, 3, 0.00000, 0.00000, '', '0000-00-00', 1, 1), (8, 'Moule À Cake 640/42G', 30, 1000, 3, 0.04280, 9.99, 3, 0.00000, 0.00000, '', '0000-00-00', 1, 1), (9, 'Moule À Cake Plié 170 X 60 X 4', 30, 1000, 3, 0.03990, 9.99, 3, 0.00000, 0.00000, '', '2008-06-10', 1, 0), (10, 'Moule Alu 232 X 108 H60 M1100', 40, 700, 3, 0.09460, 9.99, 3, 1.00000, 0.09460, '', '2008-04-30', 1, 1), (11, 'Tourtière Basse Carton Tp277H2', 40, 600, 3, 0.12935, 9.99, 3, 1.00000, 0.12935, '', '2008-04-30', 1, 1), (12, 'Tourtière Basse Carton Tp247H2', 40, 540, 3, 0.11505, 9.99, 3, 1.00000, 0.11505, '', '2008-04-30', 1, 1), (13, 'Moule Carton 170 X 80H50', 40, 325, 3, 0.14849, 9.99, 3, 0.00000, 0.00000, '', '0000-00-00', 1, 1), (14, 'Bobine De Plastique Bleu Pour ', 33, 12, 1, 2.89000, 9.99, 1, 0.00000, 0.00000, '', '0000-00-00', 1, 1), (15, 'Bobine De Papier Sulfurisé Pou', 34, 12, 1, 3.80000, 9.99, 1, 0.00000, 0.00000, '', '0000-00-00', 1, 1), (16, 'Etiquettes Auto.Gm Rose', 32, 12000, 3, 0.00958, 9.99, 3, 1.00000, 0.00958, '', '0000-00-00', 1, 1), (17, 'Etiquettes Auto.Gm Vertes', 32, 12000, 3, 0.00958, 9.99, 3, 1.00000, 0.00958, '', '0000-00-00', 1, 1),
En faite je voudrait une requête qui me permettrait d'avoir les emballages avec les informations avec comme condition qu'il ne figure pas dans la table invetaire_emb avec des champs précis.(mois_inventaire_emb; annee_inventaire_emb)
Voici la requête que j'ai essayer mais qui ne fonctionne pas:
Ou est-que j'ai commis une erreur?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 SELECT emballage.id_emb, nom_emb, nom_four, cond_emb, unite_conditionnement, pu_emb, qte_inventaire_emb FROM emballage LEFT JOIN inventaire_emb ON emballage.id_emb = inventaire_emb.id_emb INNER JOIN fournisseur ON emballage.id_four = fournisseur.id_four INNER JOIN conditionnement ON conditionnement.id_conditionnement = emballage.id_conditionnement WHERE mois_inventaire_emb != 02 AND annee_inventaire_emb !=2008 AND actif_emb = '1' ORDER BY nom_four
Merci d'avance pour votre aide
guigui69
Partager