IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage SQL Discussion :

Problème d'affichage quand champ NULL


Sujet :

Langage SQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2011
    Messages : 103
    Par défaut Problème d'affichage quand champ NULL
    Bonjour,

    Voilà pour un formulaire en asp, je dois ramener un certains nombres de données, dont un numéro de service actuel et un numéro de service futur, que je dois retransformer avec les dénominations de chaque service. Par exemple le numéro 458 correspond RTP/DRAC/PMO/DCE.
    Bref mon code marche, sauf pour les personnes dont le numéro de service futur est à NULL ou 0.

    Voici mon code :
    Code ASP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    ReqSQL = "SELECT  service.no_service, service.code_direction, service.code_departement, service.code_division, service.code_groupe, "_
    + "Vservice.no_service as Vno_service, Vservice.code_direction as Vcode_direction, Vservice.code_departement as Vcode_departement, " _
    + "Vservice.code_division as Vcode_division, Vservice.code_groupe as Vcode_groupe, […] agent.no_service, agent.no_service_futur, […]" _
    + "FROM  agent AS agent INNER JOIN service AS service ON agent.no_service = service.no_service INNER JOIN " _
    + "service AS Vservice ON agent.no_service_futur = Vservice.no_service [...] WHERE […]" 		
     
    	response.write "<response>"
    	If RsUser.RecordCount = 1 Then
    		response.write "<statut>Success</statut>"
    		response.write 	"<requester>"
     
    []
     
    		If isNull(RsUser("no_service") ) Then
    			response.write "<current_service>" & " " & "</current_service>"
    		Else direction 		= RTrim(Cstr(RsUser.Fields("code_direction").value))
    			 departement 	= RTrim(Cstr(RsUser.Fields("code_departement").value))
    			 division 		= RTrim(Cstr(RsUser.Fields("code_division").value))
    			 groupe 		= RTrim(Cstr(RsUser.Fields("code_groupe").value))
    			 service 		= direction + "/" + departement + "/" + division + "/" + groupe
    			 response.write		"<current_service>" & service & " </current_service>"
    		End If
     
    		If isNull(RsUser("Vno_service") ) Then
    			response.write "<new_service>" & " " & "</new_service>"
    		Else direction_futur 	= RTrim(Cstr(RsUser.Fields("Vcode_direction").value))
    			 departement_futur  = RTrim(Cstr(RsUser.Fields("Vcode_departement").value))
    			 division_futur  	= RTrim(Cstr(RsUser.Fields("Vcode_division").value))
    			 groupe_futur  		= RTrim(Cstr(RsUser.Fields("Vcode_groupe").value))
    			 service_futur  	= direction_futur + "/" + departement_futur + "/" + division_futur + "/" + groupe_futur
    			 response.write		"<new_service>" & service_futur & " </new_service>"
    		End If
     
    		[]
     
    		response.write 	"</requester>"
    	Else
    		response.write "<statut>Failure</statut>"
    	End If
    	response.write "</response>"




    Et là je ne vois pas du tout... Est ce que je dois tester directement dans la requête SQL si le champ est à NULL ou à 0?
    Sinon comment je puis faire? Il faut croire que la ligne
    Code ASP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    If isNull(RsUser("Vno_service") ) Then
    			response.write "<new_service>" & " " & "</new_service>"

    ne suffit pas.

    Avis, conseils, remarques seront la bienvenue!!

    Merci d'avance à vous tous!!

  2. #2
    Membre Expert
    Homme Profil pro
    Ingenieur de recherche - Ecologue
    Inscrit en
    Juin 2003
    Messages
    1 157
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingenieur de recherche - Ecologue

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 157
    Par défaut
    bonjour

    il s'agit ici d'un forum sur le language SQL. Hors la requete est noyee ...

    SVP

    donner le requete seule en explicitant le probleme lie a cette requete


  3. #3
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2011
    Messages : 103
    Par défaut
    Oki pas de souci

    Je dois ramener un certains nombres de données, dont un numéro de service actuel et un numéro de service futur, que je dois retransformer avec les dénominations de chaque services.
    Par exemple le numéro 458 correspond à RTP/DRAC/PMO/DCE.

    Bref mon code marche, sauf pour les personnes dont le numéro de service futur est à NULL ou 0.

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    SELECT service.no_service
         , service.code_direction
         , service.code_departement
         , service.code_division
         , service.code_groupe
         , Vservice.no_service       as Vno_service
         , Vservice.code_direction   as Vcode_direction
         , Vservice.code_departement as Vcode_departement
         , Vservice.code_division    as Vcode_division
         , Vservice.code_groupe      as Vcode_groupe
         , [...]
         , agent.no_service
         , agent.no_service_futur
         , [...]
      FROM agent AS agent
           INNER JOIN service AS service
             ON agent.no_service = service.no_service
           INNER JOIN service AS Vservice
             ON agent.no_service_futur = Vservice.no_service
           [...]
     WHERE [...]

    Comment puis-je faire pour savoir si le numéro de service futur est null ou égal 0 et le remplacer par exemple par un espace...

  4. #4
    Membre Expert
    Homme Profil pro
    Ingenieur de recherche - Ecologue
    Inscrit en
    Juin 2003
    Messages
    1 157
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingenieur de recherche - Ecologue

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 157
    Par défaut
    c'est la clause WHERE qui pose interrogation

    Quand on recherche une "valeur" existante, c'est

    WHERE numero = 0
    et quand la "valeur" n'existe pas, c'est
    WHERE numero IS NULL
    nota : il y a de tres nombreuses discussions dans le forum sur le sujet

  5. #5
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2011
    Messages : 103
    Par défaut
    Ça d'accord, je sais comment faire.
    Ce qui me pose problème c'est justement le fait que la valeur soit à 0 ou à NULL.

    Est-ce que je peux dans ma requête SQL lui dire que si c'est à 0 ou à NULL le remplacer par un espace ? Sinon il va quand même chercher le numéro du service (correspondant au numéro de service futur de l'agent) correspondant dans la table service mais il a un bug car les valeurs 0 et NULL n'existent pas dans cette table.

    Si je ne suis pas assez claire...

  6. #6
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 135
    Par défaut
    Une jointure externe serait peut-être plus adaptée ...
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  7. #7
    Membre Expert
    Homme Profil pro
    Ingenieur de recherche - Ecologue
    Inscrit en
    Juin 2003
    Messages
    1 157
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingenieur de recherche - Ecologue

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 157
    Par défaut


    et cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    WHERE numero = 0 
       OR numero IS NULL
    et la requete update s’écrit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    UPDATE ..... SET numero = ' '
       WHERE numero = 0 
          OR numero IS NULL
    Sinon il va quand même chercher le numéro du service (correspondant au numéro de service futur de l'agent) correspondant dans la table service mais il a un bug car les valeurs 0 et NULL n'existe pas dans cette table.....
    quand même
    ???? ce n'est pas une décision du SGBD, c'est ta requête qui lui demande cela.

    car les valeurs 0 et NULL n'existe pas dans cette table
    ???????
    Je ne comprends rien.

    Ce serait bien d'indiquer la structure des tables.

Discussions similaires

  1. Problème d'affichage quand champ NULL
    Par audrey1912 dans le forum ASP.NET
    Réponses: 1
    Dernier message: 19/05/2011, 08h31
  2. Réponses: 2
    Dernier message: 23/03/2009, 18h19
  3. [MySQL] Affichage de champs dans une liste déroulante
    Par mealtone dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 03/10/2008, 18h06
  4. [ODBC] PDO_ODBC Access : problème d'affichage de champs
    Par koa dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 15/05/2007, 12h32
  5. Problème à l'affichage quand j'utilise SDL
    Par vincechaff10 dans le forum SDL
    Réponses: 8
    Dernier message: 25/07/2006, 11h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo