Sql update avec alias

Résolu/Fermé
ClémentDelahoche Messages postés 19 Date d'inscription lundi 28 décembre 2009 Statut Membre Dernière intervention 28 décembre 2009 - 28 déc. 2009 à 09:36
 dert72 - 25 janv. 2010 à 18:56
Bonjour,
Voila j'ai une table qu'on va appelé TB
Dedans j'ai un ligne param1, param2, param3, param4
je voudrais faire un update de TB quand tb1.param1=tb2.param1, tb1.param2=tb2.param2 et set tb1.param3=tb2.param3 quand tb2.param4=val1 et tb1.param=val2
Le problème est qu'on peut pas faire d'alias sur un update et que je travail sur une seule table.
A voir également:

25 réponses

moiced59 Messages postés 1145 Date d'inscription samedi 15 novembre 2008 Statut Membre Dernière intervention 18 août 2014 60
28 déc. 2009 à 16:54
petite question:

SELECT ct1.ref_couv_soc FROM couverture_tiers ct1, couverture_tiers ct2
WHERE ct1.ref_individu = ct2.ref_individu
AND ct1.ref_couv_soc = ct2.ref_couv_soc cette ligne te sert juste a renvoyé les enregistrement non nul
AND ct1.ref_risque <> ct2.ref_risque ??? dc la plus aucun resulat
AND ct1.type_organisme ='RO'
AND ct2.type_organisme ='RC'

explique moi la <> entre ta requete et celle ci stp:

SELECT ref_couv_soc FROM couverture_tiers
WHERE ref_individu <> ""
AND ref_couv_soc <>""
AND type_organisme ='RO' or type_organisme ='RC'
0
ClémentDelahoche Messages postés 19 Date d'inscription lundi 28 décembre 2009 Statut Membre Dernière intervention 28 décembre 2009
28 déc. 2009 à 17:06
la requête que tu viens de me fournir ne fonctionne pas du tout (message d'erreur): identificateur de longueur zéro interdit)
en fait pour t'expliquer un peu "le métier"
pour une couverture sociale (ref_couv_soc) il peut y avoir plusieurs patient (donc on teste que c'est bien la couverture d'un patient)
cette couverture se décompose en plusieures lignes
une ligne RO et une ligne RC
il faut que la ref_risque de la ligne RO et la ligne RC soit identique
donc le soucis est bien de forcer un ligne avec la valeur de l'autre si elle est différente.
je sais pas si je suis clair.
0
ClémentDelahoche Messages postés 19 Date d'inscription lundi 28 décembre 2009 Statut Membre Dernière intervention 28 décembre 2009
28 déc. 2009 à 17:39
j'ai trouvé, ptn c'était chaud mais voila

merge into couverture_tiers t1
using couverture_tiers t2 on (t2.ref_individu=t1.ref_individu and t1.ref_couv_soc=t2.ref_couv_soc)
WHEN MATCHED THEN
update set t1.ref_risque=t2.ref_risque
where (t2.type_organisme='RO' and t1.type_organisme='RC')
and t2.ref_risque<>t1.ref_risque

il a fallut en lire de formum pour découvrir ce merge into qui est assez géniale et qui va m'aider énormément (car on a une base un peu bizarre avec notament pas vraiment de clé primaire)
0
moiced59 Messages postés 1145 Date d'inscription samedi 15 novembre 2008 Statut Membre Dernière intervention 18 août 2014 60
28 déc. 2009 à 17:44
et bien bravo je t aurais pas aidé dsl !!!!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ClémentDelahoche Messages postés 19 Date d'inscription lundi 28 décembre 2009 Statut Membre Dernière intervention 28 décembre 2009
28 déc. 2009 à 17:45
merci déjà d'avoir essayé et passé du temps dessus
@+ (je vais pouvoir partir du taf sur une victoire)
0