|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité régulier
![]() Inscription : juillet 2008 Messages : 19 ![]() |
Bonjour
Voici mon problème Dans une table t1 j'ai un champ texte appelé DIV Afin de l'utiliser comme comparateur dans l'UPDATE d'une autre table, il me faut changer la valeur de ce champ sachant que : si champ = RFRV alors champ doit être égal à RFRM si champ = RFRM alors champ doit être égal à RFRV si champ autre alors champ = champ j'ai essayé de créer une fonction à l'aide de MySql Query Brother Code :
BEGIN SELECT CASE TOTO WHEN 'rfrv' THEN 'rfrm' WHEN 'rfrm' THEN 'rfr at line 1 C'est ma première création de fonction et je suis un peu perdu. Quelqu'un peut il m'aider ? Merci d'avance Précision : j'ai ouvert tous les droits sur la base
|
||
|
|
00
|
|
|
#2 | ||
|
Expert Confirmé
![]() ![]() |
Bonjour,
Je pense que de cette forme ça sera mieux. Code :
__________________
http://alaindefrance.wordpress.com - http://www.alain-defrance.com Certifications : SCJP6 - SCWCD5 - SCBCD5 - SCMAD1 Project Lead eXo Social Java Black Belt - Java Black Belt Coach |
||
|
00
|
|
|
#3 | ||
|
Invité régulier
![]() Inscription : juillet 2008 Messages : 19 ![]() |
en fait je suis en train de migrer une appli que j'ai développée en Visual Basic et Access.
aujourd'hui je conserve mon support Visual Basic comme interface, mais je me sert de MySql comme BDD. dans mon traitement, je mets à jour une table, (tbl_suivi), à partir d'une autre table, (tbl_me80fn), dans lesquelles j'ai un champ commun "Division". le hic est que dans l'une tbl_me80fn, lorsque mon champ contient rfrv en fait dans l'autre mon champ contient rfrm et inversement (pb d'extraction d'un ERP) je procède donc en préalable de la mise à jour de tbl_suivi, où j'ai une jointure des deux tables sur l'égalité du champ division,à l'inversion de la valeur des champs dans tbl_me80fn avec en SQL VB: Code :
"UPDATE tbl_me80fn set Division = versusdiv([Div])"
Code :
je vais essayer ta solution demain au bureau et te dirais quoi en tout cas merci de t'y être interressé si rapidement claude |
||
|
|
00
|
|
|
#4 |
|
Invité régulier
![]() Inscription : juillet 2008 Messages : 19 ![]() |
Script line: 4 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')
BEGIN SELECT CASE TOTO WHEN 'rfrv' THEN 'rfrm' WHEN 'rfrm' THEN 'rf' at line 1 est ce que cela vous parle ? le code complet est la copie de la suggestion de kazou |
|
|
00
|
|
|
#5 |
|
Expert Confirmé
![]() ![]() |
Bonjour,
Avant de continuer de se perdre un peu, pourrait tu nous donner le script de création de ta base de données ?
__________________
http://alaindefrance.wordpress.com - http://www.alain-defrance.com Certifications : SCJP6 - SCWCD5 - SCBCD5 - SCMAD1 Project Lead eXo Social Java Black Belt - Java Black Belt Coach |
|
00
|
|
|
#6 |
|
Invité régulier
![]() Inscription : juillet 2008 Messages : 19 ![]() |
volontier mais je fais comment ?
claude |
|
|
00
|
|
|
#7 |
|
Expert Confirmé
![]() ![]() |
Ce sont les CREATE TABLE ...
__________________
http://alaindefrance.wordpress.com - http://www.alain-defrance.com Certifications : SCJP6 - SCWCD5 - SCBCD5 - SCMAD1 Project Lead eXo Social Java Black Belt - Java Black Belt Coach |
|
00
|
|
|
#8 |
|
Invité régulier
![]() Inscription : juillet 2008 Messages : 19 ![]() |
Ma base a été créée à partir d'une migration Access
Je ne traite que des informations soit récupérées par des LOAD DATA sur fichier texte, soit mises à jour par UPDATE ou INSERT en fonction des données se trouvant dans la table principale. Pour ce qui est de mon problème, j'ai contourné la difficulté par des UPDATE avec des Code :
SET = IF(x,IF(y,'toto','tata'),x) ce qui marche vite et bien. Merci de m'avoir prêter attention ![]() claude |
|
|
00
|
|
|
#9 |
|
Invité de passage
![]() Inscription : avril 2009 Messages : 5 ![]() |
Bonjour à tous,
j'ai un problème dans ma procédure stockée sous mysql 5.1, apparemment le insert into ne passe pas /home/hakim/Bureau/proc.png |
|
|
00
|
|
|
#10 |
|
Invité de passage
![]() Inscription : avril 2009 Messages : 5 ![]() |
DELIMITER $$
DROP PROCEDURE IF EXISTS `hakim_test`.`map_hotels`$$ CREATE PROCEDURE `hakim_test`.`map_hotels` (in swLat double,in swLon double,in neLat double,in neLon double) BEGIN declare done INT DEFAULT 0; declare hotel_id int ; declare lat_hotel double; declare long_hotel double; declare curseur1 CURSOR FOR SELECT id,latitude, longitude from accom_details; declare CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1; delete from geo_hotel; OPEN curseur1; REPEAT FETCH curseur1 INTO hotel_id,lat_hotel,long_hotel ; while hotel_id is not null INSERT INTO geo_hotel (id,lat,lon,g ) VALUES( hotel_id,lat_hotel,long_hotel, GeomFromText(CONCAT('POINT(', lat_hotel,' ', long_hotel,')'))); end while END REPEAT; CLOSE curseur1; END$$ DELIMITER ; |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com