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),
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),
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.

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:

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
Ou est-que j'ai commis une erreur?

Merci d'avance pour votre aide

guigui69