bonjour,
j'ai les deux tables suivantes :
Code Java :

Code java : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public static final String table_concerne_devis__Name = "concerne_devis";
	static final String[] TABLE_concerne_devis = 
		{ 
		"n_commande_f int(6) zerofill NOT NULL" , 
		"reference  int(4) zerofill NOT NULL" ,
		"prix_unitaire double precision not null",
		"qte_cf int not null" , 
		"unite varchar(10) not null",
		"mt_ht double not null " ,
		"taux_tva double precision not null ",
		"livrer varchar(5) not null ",
		"constraint wwwaz PRIMARY KEY (n_commande_f,reference)" ,
		"CONSTRAINT sdfdf FOREIGN KEY (n_commande_f) REFERENCES devis (n_commande_f) ", 
		"CONSTRAINT oiopi FOREIGN KEY (reference) REFERENCES article (reference) "
        };



et celle-là
Code Java :

Code java : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public static final String[] TABLE_article = 
		{ 
		"reference int(4) zerofill AUTO_INCREMENT NOT NULL" , 
		"designation VARCHAR(30) not null" ,
		"marque VARCHAR(30) " , 
		"unite VARCHAR(30) not null " ,
		"t_tva double not null" , 
		"p_a double not null" , 
		"p_v double not null" , 
		"PRIMARY KEY (reference)",
		"stock_entree int ",
		"stock_sortie int ",
		"CONSTRAINT FuuT_PRS FOREIGN KEY (t_tva) REFERENCES taux_tva (tva) " ,
		"CONSTRAINT FqarS FOREIGN KEY (unite) REFERENCES unite_article (unite) " 
        };



Le champ "livrer" de la première table prend true ou false.
Je veux que lorsque on le met à true, on diminue stock_sortie de la deuxième table avec la valeur correspondante de qte_cf de la première table.
J'ai essayé :
Code Java :

Code java : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
String req1 = "update article set stock_sortie = stock_sortie - (select qte_cf from concerne_cf where n_commande_f ='"+num+"'" +
					" and reference in (select reference from concerne_cf where n_commande_f ='"+num+"' ) ) where reference in " +
							"(select reference from concerne_cf where n_commande_f ='"+num+"' )";
			System.out.println("req1 : "+req1);
			st.executeUpdate(req1);

et l'erreur :
Subquery returns more than 1 row

Je ne sais pas résoudre.
Merci
Avez-vous une idée