begin process at 2012 05 27 04:37:34
  Trouver un code source :
 
dans
 
Accueil > Forum > 

SQL

 > 

SQL Server, MSDE, SQL Express

 > 

Functions

 > 

Requete SUM Avec des Null


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Requete SUM Avec des Null

jeudi 27 novembre 2008 à 17:04:01 | Requete SUM Avec des Null

Djzlouk

Bonjour,

J'ai une question relativement simple, je fais un requete comme cela :

SELECT     Calendar.CodeHeures, Affaire.NumAffaire, SUM(Calendar.Temps) AS Temps
FROM         Affaire INNER JOIN
                      Calendar ON Affaire.IdAffaire = Calendar.IdAffaire
GROUP BY Calendar.CodeHeures, Affaire.NumAffaire

et je recupere tous les numéro d'affaires qui vont bien avec leurs montant en face.
Il se trouve que j'ai  des NumAffaire qui sont NULL, et j'aimerais bien récupérer la somme des temps qui sont pour les NumAffaire NULL.

Mais je n'y arrive pas.

Pouvez vous m'aider ?

Merci d'avance :)
jeudi 27 novembre 2008 à 19:38:13 | Re : Requete SUM Avec des Null

nhervagault

Administrateur CodeS-SourceS
Salut

Remplaces le inner join par un LEFT JOIN
vendredi 28 novembre 2008 à 09:22:47 | Re : Requete SUM Avec des Null

Djzlouk

Effectivement il y a un peu de changement avec le LEFT JOIN.

Avec INNER JOIN, j'ai 42 retours alors qu'avec LEFT JOIN J'en ai 125.

Moi ce que j'avais c'etait (Avec INNER JOIN) :
CodeHeures NumAffaire Temps
FAV8QC964930,4
DDA3QF16943
KDA3QF16947,6

Ce que j'ai avec LEFT c'est :
FAV8QC964930,4
DDA3QF16943
KDA3QF16947,6
NULLTotal - 2008NULL
Donc des champs null dans le CodeHeures

Et j'aimerais en réalité juste les lignes de plus qui sont en liaison avec un numAffaire NULL (Qui est une condition dans le JOIN... grace au ON)
Ce que j'aimerais serai donc de la forme :
FAV8QC964930,4
DDA3QF16943
KDA3QF16947,6
ABNULL60
CPNULL56,2

vendredi 28 novembre 2008 à 13:14:34 | Re : Requete SUM Avec des Null

nhervagault

Administrateur CodeS-SourceS
J'ai pas trop compris, ce qui tu voulais de plus.

Peux-tu mettre la contenu des deux tables 5 - 6 lignes avec les différents cas possible
et le résultat obtenu et celui attendu (comme dans ton précédent post)

Car il me manque les tables sources pour comprendre ou est le problème.


vendredi 28 novembre 2008 à 13:20:17 | Re : Requete SUM Avec des Null

Djzlouk

Alors,
Table Calendar :
IdCalendar    int
IdAffaire    int
Temps    float    Unchecked

Table Affaire :
IdAffaire    int
NumAffaire    nvarchar(MAX)

Et il existe une relation entre les IdAffaire. Mais de temps en temps je crée une ligne dans calendar avec un IdAffaire NULL (c'est fait expres) mais je voudrais recuperer ces elements.


voila

vendredi 28 novembre 2008 à 16:52:25 | Re : Requete SUM Avec des Null

nhervagault

Administrateur CodeS-SourceS
Réponse acceptée !
C'est ta relation qui est dans le mauvais sens.

SELECT     Calendar.CodeHeures, Affaire.NumAffaire, SUM(Calendar.Temps) AS Temps
FROM         Calendar LEFT JOIN
                      Affaire  ON Affaire.IdAffaire = Calendar.IdAffaire
GROUP BY Calendar.CodeHeures, Affaire.NumAffaire

Car les données à prendre en compte sont dans calendar et non affaire


vendredi 28 novembre 2008 à 19:28:47 | Re : Requete SUM Avec des Null

Djzlouk

Hummmmmm,

C'est peut etre ca. Je savais pas que l'odre du 'From' avait une grande importance.

Je peux pas tester tout de suite.
Je valide la réponse dès que je peux vérifier :p


Merci en tout cas de la proposition. :)
vendredi 28 novembre 2008 à 19:35:35 | Re : Requete SUM Avec des Null

nhervagault

Administrateur CodeS-SourceS
Si dans le cas de left join
mais pas dans le cas de l'inner join

left join

null - null --> null
null - valeur --> null
valeur - null --> valeur
valeur - valeur --> valeur

inner join

null - null --> null
null - valeur --> null
valeur - null --> null
valeur - valeur --> valeur

right join

null - null --> null
null - valeur --> valeur
valeur - null --> null
valeur - valeur --> valeur
dimanche 30 novembre 2008 à 13:41:10 | Re : Requete SUM Avec des Null

EricSQL

Ce n'est pas un problème de jointure externe car le NULL ne porte pas sur le filtre !
Change ton group by :
group by case when Affaire.NumAffaire is not null then Calendar.CodeHeures end, Affaire.NumAffaire

/Eric


Cette discussion est classée dans : calendar, requete, affaire, sum, numaffaire


Répondre à ce message

Sujets en rapport avec ce message

Bien malin celui qui réussi cette requete (select,sum,*,group by,date,jointure ) [ par Rjoe ] Extrait du schéma relationnelle ou se trouve  les tables et les relations en questions  :premiere requete pb requete liée [ par trexor ] Bonjour, je lance une requete : Dim req1 = "INSERT INTO [Support longi] ( [Nom support longi],[Type], [codeT panneau]) VALUES ('"<FONT size Le maximum ou le minimum d'une somme SUM() [ par wallole_ofm ] Bonjour,Je doit maintenir une application de gestion de stocks sous access 2  .Avec cette requête, je calcul la somme d'un produit par emplacement, il Pb requete vers access [ par trexor ] Bonjour, j'ai un petit pb de requete avec access/vb.net : SELECT * FROM [Support longi] ORDER BY Positionme donne "Echec de ierrorInfo.GetDescription Problème d'ajout dans une table access à partir d'un formulaire access [ par asmainfo ] Bonjour tout le monde! J'ai un problème dans l'insertion dans ma table access ;aprés validation du formulaire juste le dernier enregistrement est sauv Probleme avec une requete [ par deadstar2 ] Bonjour à tous, Je n'ai pas un excellent niveau en sql, j'aimerais faire appel à vos connaissances pour une requete dont je n'arrive pas à obtenir ce Resultat aleatoire [ par pioug70 ] Bonjour, J'execute une requete qui me renvoie N resultats parmis ces N resultats je souhaite en recupérer 1 seul et de maniere aléatoire. Exemple requete date [ par Rjoe ] bonjour ma question est la suivantedans mon aplication je souhaite faire une verification pour un mois courant ,or, il se peut que ce mois soit févrie Faire un concat dans une requete sous access [ par sebclick ] Bonjour,J'ai vu dans la doc sql que l'on peut réaliser une concaténation de deux chaines lors de la requete.A priori, Microsoft SQL gère cette fonctio requete système ... [ par d_morio ] Bonjour à tous,Voici mon soucis:Je voudrais repérer dans une BD Oracle l'ensemble des tables possédant l'attribut XXX, afin de préparer un migration.J


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,279 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales