Précédent   Forum des professionnels en informatique > Bases de données > MySQL
MySQL Forum d'entraide MySQL. Avant de poster -> FAQ MySQL, Tutoriels MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 05/09/2011, 09h15   #1
 
Homme
Inscription : juillet 2011
Messages : 125
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Maroc

Informations professionnelles :
Secteur : Enseignement

Informations forums :
Inscription : juillet 2011
Messages : 125
Points : -11
Points : -11
Par défaut Subquery returns more than 1 row

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

Code java :
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 :
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 :
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
encours est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/09/2011, 12h16   #2
Membre éclairé
 
Avatar de boussafi
 
Homme
Ingénieur développement logiciels
Inscription : septembre 2007
Messages : 342
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Algérie

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : Industrie

Informations forums :
Inscription : septembre 2007
Messages : 342
Points : 397
Points : 397
Envoyer un message via Yahoo à boussafi Envoyer un message via Skype™ à boussafi
Je pense que tu veux avoir toutes les qte_cf concernées.
Pour cela voici la sous-requête:
Code :
1
2
3
4
5
6
(SELECT qte_cf 
                                                 FROM sum(concerne_cf )
                                                 WHERE n_commande_f ='"+num+"'" +
                                                 and reference in (select reference 
                                                                   from concerne_cf 
                                                                   where n_commande_f ='"+num+"' ) )
boussafi est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h01.


 
 
 
 
Partenaires

Hébergement Web