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 :

Requête SQL : renvoyer 0 si empty fetch


Sujet :

Langage SQL

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    731
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 731
    Points : 574
    Points
    574
    Par défaut Requête SQL : renvoyer 0 si empty fetch
    Bonjour,
    j'ai la requête suivante qui ne me renvoie rien :

    Voici le résultat :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    12:36:32  [SELECT - 0 row(s), 0.031 secs]  Empty result set fetched
    Voici la requête
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    select count(DATE_SIGNATURE) as NBR_DATE_SIGN_DIFF_DAT_1ER_CESS, REFID as REFID
    from D_VENDEURS dv
    where (((dv.DATE_1ER_CESSION is not null and datediff(day , dv.DATE_SIGNATURE,dv.DATE_1ER_CESSION) <>0)))
    and dv.REFID = 85478
    group by REFID
    J'aurais voulu que cette requête sql me renvoie (0, 85478) si aucun enregistrement ne répond à ma requête, un truc du style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    select case when fetch is null then 0 else count(DATE_SIGNATURE) end  as NBR_DATE_SIGN_DIFF_DAT_1ER_CESS, REFID as REFID
    from D_VENDEURS dv
    where (((dv.DATE_1ER_CESSION is not null and datediff(day , dv.DATE_SIGNATURE,dv.DATE_1ER_CESSION) <>0)))
    and dv.REFID = 822
    group by REFID
    mais ne veut rien dire en sql.

    Pour info, je suis sur un SGBD SQL SERVER 2000

    Merci

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    1 874
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 874
    Points : 2 890
    Points
    2 890
    Par défaut
    La difficulté ne vient pas d'obtenir un COUNT à zéro, pour ça il n'y a qu'à enlever le group by, mais du ref_id demandé sur la colonne d'à coté alors qu'il n'y en a aucun qui satisfasse les conditions.

    Mais puisqu'une valeur particulière de ref_id est injectée dans la requête en paramètre littéral, il suffit de mettre directement la valeur dans la select-list:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    SELECT count(DATE_SIGNATURE) AS NBR_DATE_SIGN_DIFF_DAT_1ER_CESS,
      85478 AS REFID
    FROM D_VENDEURS dv
    WHERE (((dv.DATE_1ER_CESSION IS NOT NULL AND datediff(day , dv.DATE_SIGNATURE,dv.DATE_1ER_CESSION) <>0)))
    AND dv.REFID = 85478

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    731
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 731
    Points : 574
    Points
    574
    Par défaut
    ok merci, je suis passé par un isnull mais cette solution me va aussi

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] Query was empty après requête SQL
    Par clementdevelop dans le forum PHP & Base de données
    Réponses: 21
    Dernier message: 21/05/2013, 11h56
  2. Query was empty requête SQL
    Par clementdevelop dans le forum Requêtes
    Réponses: 1
    Dernier message: 17/05/2013, 16h28
  3. Réponses: 15
    Dernier message: 26/11/2010, 21h38
  4. [SSIS][2k5]requête sql renvoyant l'activité d'un job ssis
    Par cyrano_de_bergerac dans le forum SSIS
    Réponses: 4
    Dernier message: 08/09/2009, 10h21
  5. Utilisation de MAX dans une requête SQL
    Par Evil onE dans le forum Langage SQL
    Réponses: 7
    Dernier message: 15/06/2004, 18h38

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