#1242 - Subquery returns more than 1 row

#1242 - Subquery returns more than 1 row - SQL/NoSQL - Programmation

Marsh Posté le 14-05-2009 à 17:02:00    

Bonjours,
 
j'ai un petit problème je dois prendre les données d'un champs lui enlevé deux jours et le remettre dans un autre champs le champs ou il est
 
est : planning_date
 
et ce qui ce trouve dans la table planning=>champs=>planning_date: est comme cela 2008-12-21 00:00:00
 
donc je doit prendre cette date là 2008-12-21 et lui enlever 2 jours pour
 
pouvoir le mettre dans la table customers=>champs=>customers_date_inscription
 
donc dans planning_date la date est 2008-12-21 je doi lui enlevé deux jours soit la date doit être 2008-12-19 quand on l'insère dans le champs customers_date_inscription
 
j'ai commencé ma requette afin de récupérer toute les dates de planning_date par id car le problème c'est que un id peut avoir plusieur planning_date différent et que je doit prendre la première par customers
 
ma requete:
 

Code :
  1. UPDATE es_customers
  2. SET  customers_date_inscription = DATE_SUB(
  3. ( SELECT MIN(pl.planning_date)
  4.     FROM es_planning pl
  5.   WHERE pl.customers_id = customers_id
  6.        AND pl.planning_type='gratuite'
  7.    GROUP BY customers_id ), INTERVAL 2 DAY)


 
et avec ce resultat je devrai enlevé deux jours à 2008-12-21 00:00:00 et le mettre dans customers=>champs=>customers_date_inscription
 
mon problème c'est que je sais pas comment enlevé les deux jours puis les placé la date dans customers=>champs=>customers_date_inscription
 
mais le problème c'est que sa me met: #1242 - Subquery returns more than 1 row


Message édité par sinifer le 15-05-2009 à 12:31:15
Reply

Marsh Posté le 14-05-2009 à 17:02:00   

Reply

Marsh Posté le 16-05-2009 à 19:25:24    

rajoute un alias dans ton subquery, toujours toujours tout tout aliaser
 
 
 

Code :
  1. UPDATE es_customers ref
  2. SET  ref.customers_date_inscription = DATE_SUB(
  3. ( SELECT MIN(pl.planning_date)
  4.    FROM es_planning pl
  5.  WHERE pl.customers_id = ref.customers_id
  6.       AND pl.planning_type='gratuite'
  7.   GROUP BY pl.customers_id ), INTERVAL 2 DAY)

Reply

Marsh Posté le 18-05-2009 à 08:51:32    

Merci sa marche très bien


Message édité par sinifer le 18-05-2009 à 08:51:50
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed