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
Partager