Probleme SQL server 2005

Résolu
Neyte Messages postés 122 Statut Membre -  
Breub62 Messages postés 3452 Statut Membre -
Bonjour,

J'ai un probleme les amis,

en effet j'aimerais savoir comment forcer une requete à renvoyer un résultat quans celui ci est NULL?

Exemple : je parcours le mois de mars je récupere la somme des paiement de chaque jour:
il me renvoie 1: 100; 5 :150...

Et je voudrais qu'il me renvoie 1:100 ; 2 :0 ...

SELECT round(sum(champ_montant.MONTANT_VENTE_TTC),2)as mt_tot,day(champ_date)
FROM tables
WHERE champdate between '01/03/2010' and DATEADD(dd,1,'31/03/2010')
group by day(champdate)
order by day(champdate)

merci pour votre aide.

14 réponses

  1. Neyte Messages postés 122 Statut Membre 16
     
    Bonjour , pourrais tu m'eclaircir sur ce point , car je n'utilise jamais de fonction pour executer des requetes mis a part dans mes procédures stockées .
    0
  2. francis
     
    Ben une fonction c'est comme une procédure, sauf que ça retourne quelque chose.
    Après demandes en plus a google , je suis pas un expert en la matière
    0
  3. Neyte Messages postés 122 Statut Membre 16
     
    up
    0
  4. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  5. Breub62 Messages postés 3452 Statut Membre 369
     
    Tu peux traiter le problème au niveau de l'application (php?).

    Ou alors tu fais une deuxième requête pour chercher les dates pour lesquelles il n'y a pas d'enregistrement(requête inverse...)
    0
  6. Neyte Messages postés 122 Statut Membre 16
     
    Salut , non je traite ces données directement dans excel et donc générer des graphiques automatiquement , c'est pour cela qu'il me faudrait :

    -Si il n'y a pas de montant au jour 5 , il me retourne quand même le jour 5 avec la valeur 0.

    Je suis bloqué la dessus, tu peux m'éclaircir sur les requêtes inverses?
    0
  7. Breub62 Messages postés 3452 Statut Membre 369
     
    
    SELECT 0 as mt_tot, day(champ_date) 
    FROM tables 
    WHERE day(champ_date) NOT IN 
    ( 
    SELECT day(champ_date) 
    FROM tables 
    WHERE champdate between '01/03/2010' and DATEADD(dd,1,'31/03/2010') 
    group by day(champdate) 
    order by day(champdate) 
    ) 
    
    
    
    
    0
  8. Neyte Messages postés 122 Statut Membre 16
     
    Bien joué breub , maintenant j'ai tous les enregistrements ou il n'y a rien (0).

    Aurais tu une solution pour récupérer la valeur (sum) quand il y a du contenu ;

    car la j'ai 2:0;3:0.... , mais plus 1:150 ...
    0
  9. Breub62 Messages postés 3452 Statut Membre 369
     
    Malheureusement je ne pense pas que ce soit possible. Tu dois réussir à jongler entre les deux requêtes...

    Par exemple, tu affiches les deux requêtes à la suite puis tu fais un tri global sur la date...c'est une solution. Après je ne m'y connait pas assez en excel(je n'excelle pas...) pour savoir ce que tu peux faire d'autre...

    Bonne continuation
    0
  10. Neyte Messages postés 122 Statut Membre 16
     
    OK merci quand meme
    0
  11. Breub62 Messages postés 3452 Statut Membre 369
     
    Et en affichant les deux requêtes à la suite + tri par date c'est pas faisable???
    0
  12. Neyte Messages postés 122 Statut Membre 16
     
    Je regarde de ce coté.pas simple lol
    0
  13. Neyte Messages postés 122 Statut Membre 16
     
    C'est bon en fait j'ai réussi à faire une seule requête en mettant un "union".
    @+
    0
  14. Breub62 Messages postés 3452 Statut Membre 369
     
    Ok bien joué. Je t'ai dit je ne m'y connais pas du tout en excel.@+
    0