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

MS SQL Server Discussion :

Pb requete avec valeurs nulles


Sujet :

MS SQL Server

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 22
    Points : 19
    Points
    19
    Par défaut Pb requete avec valeurs nulles
    J'ai un pb avec une requête :

    J'ai une table [Document_DistinctDate] :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    1990
    1991
    1992
    1993
    1994
    1995
    Et une table [Document]
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    [Date_Doc]		[Titre]	[Num_Type] 
    1990			Titre1 	1
    1990			Titre2	1
    1990			Titre3	4
    1992			Titre4 	1
    1992			Titre5	1
    1992			Titre6	1
    1993			Titre7 	1
    1994			Titre8	1
    1994			Titre9	4
    1995			Titre10 	1
    1995			Titre11	4
    1995			Titre12	1


    Je cherche une requete capable de me renvoyer
    Requete N°1 : Documents de type 1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    1990	2
    1991	0
    1992	3
    1993	1
    1994	1
    1995	2
    Requete N°2 : Documents de type 4
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    1990	1
    1991	0
    1992	0
    1993	0
    1994	1
    1995	1
    J'ai essayé ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT B.Date_Doc,count(A.Num_Doc) as NbOcc 
    FROM   Document A  
           LEFT outer JOIN Document_DistinctDate B 
                ON A.Date_Doc = B.Date_Doc
    Where A.Num_Type=4 OR A.Num_Type IS NULL
    group by B.Date_Doc
    order by B.Date_Doc
    Mais ça me renvoie
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    1990	1
    1994	1
    1995	1
    :
    Merci,

    James
    <moi>James</moi>

  2. #2
    Membre averti
    Inscrit en
    Août 2002
    Messages
    354
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 354
    Points : 398
    Points
    398
    Par défaut
    Slt,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    select Date_Doc , count(*)
    from Documents
    where Num_Type = 1
    group by Date_Doc
    non teste ... mais ca devrais ressembler a ca si j'ai bien compris ce que tu voulais (le vendredi c dur !! ;o) )

    a+
    One ring to rule them all,
    One ring to find them,
    One ring to bring them all
    And in the darkness bind them.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 22
    Points : 19
    Points
    19
    Par défaut Pas tout à fait
    Merci pour ta réponse, mais le pb est plus lourd.

    Ta requête me renvoie bien une partie de ce que je veux, mais il manque les lignes correspondant aux années où il n'y a pas de résultat.

    C'est pour ça que j'ai fait appel à une table étrangère, comme référence des années. En clair, il faudrait que le système teste chaque année de ma table étrangère , renvoie la valeur qu'il trouve, et RENVOIE 0 si il ne trouve rien.

    Encore une idée avant le WE ???

    Merci,

    James
    <moi>James</moi>

  4. #4
    Membre averti
    Inscrit en
    Août 2002
    Messages
    354
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 354
    Points : 398
    Points
    398
    Par défaut
    Slt,

    Dans on premier post ce pb sur les valeurs nulles n'pparait pas clairement . Essaye avec Isnull(tonchamp,0).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    select Isnull(Date_Doc,0) , count(*) 
    from Documents 
    where Num_Type = 1 
    group by Isnull(Date_Doc,0)
    a+
    One ring to rule them all,
    One ring to find them,
    One ring to bring them all
    And in the darkness bind them.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 22
    Points : 19
    Points
    19
    Par défaut Trouvé !
    Voici la requête solution :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    select A.Date_Doc,count(B.Num_Type)
    from Document_distinctdate A,Document B
    where B.Date_Doc =* A.Date_Doc
    and B.Num_Type = 4
    group by (A.Date_Doc)
    Merci Luc !!

    Et merci Gandalf, je ne connaissait pas la fonction isnull(). Je vais regarder ça de plus près.

    James (Très content )
    <moi>James</moi>

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

Discussions similaires

  1. requete avec valeurs nulles
    Par zozoman dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 04/06/2013, 17h54
  2. Somme de requete avec valeur NULL
    Par maxeur dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 12/04/2007, 10h19
  3. pb de requete avec valeurs null
    Par popopate dans le forum Requêtes
    Réponses: 3
    Dernier message: 23/08/2006, 21h22
  4. [SQL] Requête avec "valeur si null"
    Par metalcoyote dans le forum Oracle
    Réponses: 3
    Dernier message: 19/04/2006, 10h22
  5. [JDBC] retour de requete sql avec valeur NULL
    Par maxxou dans le forum JDBC
    Réponses: 3
    Dernier message: 13/09/2004, 14h40

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