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

Requêtes et SQL. Discussion :

Utilisation incorrecte de Null


Sujet :

Requêtes et SQL.

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 57
    Par défaut Utilisation incorrecte de Null
    Bonjour à tous,

    Je rencontre toujours ce message d'erreur lors de l’exécution de ma requête SQL :
    Citation Envoyé par Access
    utilisation correcte de Null
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    SELECT  coll.idnt_accs, coll.cod_typ_tick, coll.dur_reel_comm, coll.part_date AS mois_cour ,msisdn,cod_catg_fin,apn,
    IIF( IsNull ([dur_reel_comm]) ,0,dur_reel_comm) as DUREE_EM,Count(*) AS idnt_tick 
    INTO Table_usg_tick_coll_mobq
    FROM dom_usage_tag_usg_tick_coll_mobl_q AS coll
    WHERE coll.cod_typ_tick in ('01','03','08','09')
    AND  CDate([coll.dat_debt_comm])>=Date()-'9' 
    And CDate([coll.dat_debt_comm])<Date()-'2'
    group by coll.idnt_accs, coll.cod_typ_tick, coll.dur_reel_comm, coll.part_date  ,msisdn,cod_catg_fin,apn

    en sachant que le champ <dur_reel_comm >est de type Bigint qui peut prendre des valeurs Null ou 0, 1,10 etc..

    Quelqu'un aurait t'il une solution pour ce problème? j'ai tout essayé en vain.
    Merci d'avanceTable_dom_usage.tag_usg_tick_coll_mobl_q.docx

  2. #2
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 523
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 523
    Billets dans le blog
    67
    Par défaut
    Bonsoir,

    Il faudrait voir si vous n'avez pas des valeurs nulles pour le champ [coll.dat_debt_comm] :

    La fonction CDate() risque de provoquer une erreur si vous lui passez une valeur nulle.

    Cdlt,
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 57
    Par défaut
    la requête fonctionne bien lorsque je sélectionne des valeurs de coll.idnt_accs in ('0200nfzc0','0200n7l0r'..). qui n'ont pas valeurs nulles mais quand j'appellle toute la table dom_usage_tag_usg_tick_coll_mobl_q qui possede dans le champs " dur_reel_comm" des valeurs =Null (ecrit null ds la base) ou =0 que le message apparait

  4. #4
    Expert éminent
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 935
    Par défaut
    bonsoir,
    Bigint n'est pas une taille connue d'Access et l'impression d'écran confirme que ce n'est pas l'interface Access non plus.
    Peux-tu préciser de quelle base de données provient cette table ?

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 57
    Par défaut
    la Base de donnéee provient de TEDH(HUE) Editeur HIVE

  6. #6
    Expert éminent
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 935
    Par défaut
    la Base de donnéee provient de TEDH(HUE) Editeur HIVE
    Ce genre d'information est importante et il vaut mieux le signaler dès le premier message pour éviter de donner des réponses hors contexte.
    est-il possible que la restitution des données ne soit pas celle attendue sur Access: par exemple les valeurs de la colonne "dur_reel_comm" sont cadrées à gauche comme du type texte, est-il possible que la valeur soit "NULL" littéralement et non pas Null (rien) ?
    il faudrait faire des requêtes de sélection pour tester certaines colonnes et envoyer une impression d'écran des valeurs que l'on voit dans Access.
    Par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select * FROM dom_usage_tag_usg_tick_coll_mobl_q where dur_reel_comm = "NULL"

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 57
    Par défaut
    Bonjour,

    Non il refuse lorsqu'on fait un :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    select * FROM dom_usage.tag_usg_tick_coll_mobl_q 
    where dur_reel_comm = "NULL"
    le message d'erreur est :
    AnalysisException: operands of type BIGINT and STRING are not comparable: dur_reel_comm = 'NULL'
    resultat en FJ joint.
    REsultat_null_dom_usage.tag_usg_tick_coll_mobl_q.docx

    il accepte seulement lorsqu'on écrit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Select * FROM dom_usage.tag_usg_tick_coll_mobl_q where dur_reel_comm is null
    => Resultat il affiche dur_reel_comm = NULL

    et lorsqu'on ecrit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Select * FROM dom_usage.tag_usg_tick_coll_mobl_q where dur_reel_comm ='0'
    => Resultat il affiche dur_reel_comm = 0

    PS:une précision quand j'ouvre la table dans ACCESS VIA ODBC HIVE , la valeur du champ dur_reel_comm est (=) vide pour les valeurs ='NULL'

  8. #8
    Expert éminent
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 935
    Par défaut
    bonjour,
    il faut comprendre qu'ici c'est un forum Access, on ne peut donner des réponses uniquement si les requêtes sont exécutées dans cet environnement.
    Les impressions d'écran montrent que tu exécutes les requêtes depuis l'environnement HIVE.

    Exécute les requêtes et montre les résultats depuis l'environnement Access si c'est bien à partir de là que tu veux les exécuter.

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 57
    Par défaut
    re,

    Désolé j'ai mal compris ta question .Les résultats sont bien dans ACCESS , suis connecté dans ACCESS via une connexion ODBC c'est tout
    Quand je lance la requete dans Access c'est là que j'ai ce message d 'erreur :
    utilisation incorrect de Null
    .
    Pour rerepondre à ta question Quand je fais dans ACCESS un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select * FROM dom_usage_tag_usg_tick_coll_mobl_q where dur_reel_comm = "NULL"
    il m'affiche des champs vide.
    Fichiers attachés Fichiers attachés

  10. #10
    Expert éminent
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 935
    Par défaut
    il t'affiche 1 ligne avec des champs vides, je suppose ? C'est une supposition, car pour l'instant, on ne voit toujours rien en copie d'écran depuis Access.
    Peut-tu montrer la copie d'écran du résultat de la requête sur Access :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Select TOP 10 * FROM dom_usage_tag_usg_tick_coll_mobl_q where dur_reel_comm = 0;

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 57
    Par défaut
    Exactement , il m'affiche 1 seule ligne. Et quand j'ai fait = 0. Il m'a affiche tous les identifiants avec duree_comm = 0.
    La copie d'ecran a été jointe dans mon precedent message.
    Je relance le TOP 10 et te fais un retour asap.

  12. #12
    Expert éminent
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 935
    Par défaut
    on dirait qu'Access voit le Bigint (8 octets) comme du texte car c'est cadré à gauche. Par contre je ne sais pas si il voit nul (Null) ou champ vide ("").
    Essaie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Select TOP 10 * FROM dom_usage_tag_usg_tick_coll_mobl_q where dur_reel_comm = "";

  13. #13
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 57
    Par défaut
    Idem avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Select TOP 10 * FROM dom_usage_tag_usg_tick_coll_mobl_q where dur_reel_comm = ""
    => il retourne une seule ligne
    Fichiers attachés Fichiers attachés

  14. #14
    Expert éminent
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 935
    Par défaut
    donc c'est bien du Null qu'on voit sur Access. Par contre c'est du texte, est-ce que le message d'erreur apparait toujours avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     select IIF(IsNull([dur_reel_comm]) ,"0",dur_reel_comm) FROM dom_usage_tag_usg_tick_coll_mobl_q;

  15. #15
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 57
    Par défaut
    c'est ce que j'ai fait dans ma requête sans les " " sur 0. C'est peut être cela différence. Je vais donc la relancer avec "0" mais le resultat va etre long à sortir.

  16. #16
    Expert éminent
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 935
    Par défaut
    dans ce cas fait un select TOP 100 ou sélectionne uniquement les valeurs = "0" ou ajoute les autres conditions de ta première requête, mais le but c'est de trouver si c'est ce champ qui provoque l'erreur, donc moins il y a d'autres champs mieux c'est.

  17. #17
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 57
    Par défaut
    Lorsque je relance le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT TOP 5 IIf(IsNull([dur_reel_comm]),"0",dur_reel_comm) AS DUREE_EM
    FROM dom_usage_tag_usg_tick_coll_mobl_q;
    Ca me remonte 5 lignes de resultats<> pas de message d'erreur

    DUREE_EM
    0
    1
    0
    0
    0
    sans les apostrophes sur le 0 , j'ai également le même resultat. Alors d'ou vient l'erreur alors?REsultat_null_Access_dom_usage.tag_usg_tick_coll_mobl_q.docx

  18. #18
    Expert confirmé Avatar de hyperion13
    Homme Profil pro
    Webplanneur
    Inscrit en
    Octobre 2007
    Messages
    4 274
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Réunion

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 274
    Par défaut
    Après vérif sur Hive Sql Style IsNull() n'existe pas !!!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select * from tbl_name where column1 is null or column1 <> ''

  19. #19
    Expert éminent
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 935
    Par défaut
    Citation Envoyé par ibdiak Voir le message
    ca me remonte 5 lignes de resultats<> pas de message d'erreur
    sans les apostrophes sur le 0 , j'ai également le même resultat. Alors d'ou vient l'erreur alors?
    c'était justement le but de la manoeuvre: savoir quel champ génère l'erreur, il faut procéder par élimination. Si ce n'est pas dur_reel_comm il faut tester les autres champs de la requête. Commence par les dates :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select dat_debt_comm from dom_usage_tag_usg_tick_coll_mobl_q where dat_debt_comm is null
    car ceci: CDate([coll.dat_debt_comm])>=Date()-'9' peut provoquer une erreur avec une date nulle.

    @ hyperion13: bonsoir,
    Citation Envoyé par hyperion13
    Après vérif sur Hive Sql Style IsNull() n'existe pas !!!
    on est maintenant dans Access

  20. #20
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 57
    Par défaut
    Effectivement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select dat_debt_comm from dom_usage_tag_usg_tick_coll_mobl_q where dat_debt_comm is null
    donne des champs vides
    REsultat_null_Access_dom_usage.tag_usg_tick_coll_mobl_q.docx

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. erreur 94 utilisation incorrecte de null
    Par caossak dans le forum Général VBA
    Réponses: 2
    Dernier message: 24/06/2007, 11h00
  2. Réponses: 3
    Dernier message: 30/03/2007, 14h48
  3. Réponses: 6
    Dernier message: 03/07/2006, 08h26
  4. Utilisation incorrecte de Null ?
    Par pafi76 dans le forum Access
    Réponses: 6
    Dernier message: 28/06/2006, 09h40
  5. Utilisation incorrecte de Null ?
    Par illight dans le forum Access
    Réponses: 2
    Dernier message: 23/11/2005, 10h27

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