[SQL Oracle]
Fermé
ornellad
Messages postés
2
Date d'inscription
lundi 24 mai 2010
Statut
Membre
Dernière intervention
25 mai 2010
-
24 mai 2010 à 10:03
fiu - 26 mai 2010 à 03:30
fiu - 26 mai 2010 à 03:30
A voir également:
- [SQL Oracle]
- Logiciel sql - Télécharger - Bases de données
- Identificateur non valide oracle ✓ - Forum Bases de données
- Requête sql date supérieure à ✓ - Forum Programmation
- Sql replace plusieurs valeurs - Forum Programmation
- Récupération serveur sql - Télécharger - Gestion de données
3 réponses
ornellad
Messages postés
2
Date d'inscription
lundi 24 mai 2010
Statut
Membre
Dernière intervention
25 mai 2010
25 mai 2010 à 11:50
25 mai 2010 à 11:50
Aucun spécialiste de la fonction CASE ou du remplissage automatique de champs :( ????
chuka
Messages postés
965
Date d'inscription
samedi 11 octobre 2008
Statut
Membre
Dernière intervention
29 juillet 2010
378
Modifié par chuka le 25/05/2010 à 21:35
Modifié par chuka le 25/05/2010 à 21:35
Salut,
CASE...WHEN ne fait pas d'affectation....mais est une sorte de mise en forme de la valeur retournée (pour que celle-ci soit peux etre plus comprehensible...)
CASE..... WHEN activite_specialiteapp.addictologie=-1 THEN v_appli_spemed.lbspemed='Addictologie' ne doit donc pas fonctionner....
CASE .....WHEN activite_specialiteapp.addictologie=-1 THEN 'Addictologie'
@+
CASE...WHEN ne fait pas d'affectation....mais est une sorte de mise en forme de la valeur retournée (pour que celle-ci soit peux etre plus comprehensible...)
CASE..... WHEN activite_specialiteapp.addictologie=-1 THEN v_appli_spemed.lbspemed='Addictologie' ne doit donc pas fonctionner....
CASE .....WHEN activite_specialiteapp.addictologie=-1 THEN 'Addictologie'
@+
Salut
normalement, le case sert à renvoyer une valeur, pas à faire des affectations comme tu l'essaies
donc ton case devrait plutôt ressembler à
CASE
WHEN activite_specialiteapp.addictologie=-1
THEN 'Addictologie'
WHEN activite_specialiteapp.aidemedicale=-1
THEN 'Aide Médicale'
END specialite -- pour aliaser "specialite" l'expression CASE
...mais comme tu te rends compte que c'est pénible à manipuler, je te laisse assimiler tranquillement l'idée que tes spécialités ne devraient pas occuper x colonnes de ta table Activités. Elles devraient plutôt peupler une table SpécialitésMédicales qui pourrait être (cdSpeMed char(3), lbSpeMed varchar(30)).
Ainsi, le jour ou une 33ème spécialité apparaît (ie exopsychiatrie), tu n'auras pas à toucher à la structure d'Activités, à ton case ni à tous les autres bidules qui s'appuient dessus, il te suffirait de rajouter une ligne dans SpécialitésMédicales
normalement, le case sert à renvoyer une valeur, pas à faire des affectations comme tu l'essaies
donc ton case devrait plutôt ressembler à
CASE
WHEN activite_specialiteapp.addictologie=-1
THEN 'Addictologie'
WHEN activite_specialiteapp.aidemedicale=-1
THEN 'Aide Médicale'
END specialite -- pour aliaser "specialite" l'expression CASE
...mais comme tu te rends compte que c'est pénible à manipuler, je te laisse assimiler tranquillement l'idée que tes spécialités ne devraient pas occuper x colonnes de ta table Activités. Elles devraient plutôt peupler une table SpécialitésMédicales qui pourrait être (cdSpeMed char(3), lbSpeMed varchar(30)).
Ainsi, le jour ou une 33ème spécialité apparaît (ie exopsychiatrie), tu n'auras pas à toucher à la structure d'Activités, à ton case ni à tous les autres bidules qui s'appuient dessus, il te suffirait de rajouter une ligne dans SpécialitésMédicales