Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Autres Requête SQL

Laurent78

XLDnaute Occasionnel
Bonjour à tous,
J'ai une liste de données (qui sont en fait sur un serveur MS SQL) qui ressemble au fichier Excel joint.
Le but est de faire une requête SQL qui retourne le cumul des montants, groupés par 'Code Commercial', pour une plage de date données, mais, et c'est la le hic, avec tous les 'Code Commercial', y compris ceux qui ne sont pas mouvementés dans la période (donc avec un cumul à 0 dans ce cas).
un truc du genre :
SELECT * FROM Table WHERE date BETWEEN "20160201" AND "20160228" GROUP BY Code_Commercial
Mais cela supprimera évidement le Commercial 5 qui n'a pas de mouvement en février 2016.
En espérant être claire

Merci beaucoup à ceux qui pourrons me détortiller le cerveaux.

PS. : la même question en PowerQuery pourrait être utilise aussi

Laurent
 

Pièces jointes

  • Essai.xlsx
    26.8 KB · Affichages: 3

chris

XLDnaute Barbatruc
Bonjour

Il faudait requêter sur les deux tables, Commerciaux et Ventes (Ta table) orienter la requête en Left Join pour que tous les Commerciaux soient présents.
Comme tu cumule les montants if faut mettre Montant dans un test
Nz(Montant, 0)
ou équivalent (equivaut à remplacer null par 0 mais selon les BD et leur SQL il y a des variantes dans le nom de la fonction)
 

chris

XLDnaute Barbatruc
RE

Effectivement j'ai testé sur Access je n'y arrive pas avec une seule table en left join mais ceci (à adapter au SQL de Ms SQL et à ton contexte) fonctionne
SELECT Code, Sum(CA0) AS CA
FROM (SELECT Code, Sum(0) AS CA0
FROM FACTURES
GROUP BY Code, Date
HAVING (Date<#1/1/2019#)
UNION SELECT Code, Sum([Montant])
FROM FACTURES
GROUP BY Code, Date
HAVING (Date>=#1/1/2019#))
GROUP BY Code;
 
Dernière édition:

Laurent78

XLDnaute Occasionnel
Bonjour,
Pour info, les requêtes imbriquées ne sont pas compatibles avec MSQuery que je suis contraint d'utiliser. J'ai donc, via MSQuery fait une requête UNION, puis via Power query, je fais un regroupement qui me permet de "supprimer" les lignes en double (code avec 0 et Code avec un montant.
Merci pour l'idée de l'UNION
Bonne journée
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…