Bonjour,
Posons les informations.
Je travail dans Access et Delphi 5
Mes tables :
CLIENT (CLI_CODE, CLI_NOM, CLI_PRENOM, CLI_ADRESSE_1, CLI_ADRESSE_2, CLI_CP, CLI_VILLE, CLI_MAIL)
COMMERCIAUX(COM_CODE, COM_NOM, COM_PRENOM)
VENTE(CLI_CODE, COM_CODE, VEN_DATE, VEN_MOTIF, VEN_PRIX)
Souhait :
Je souhaite effectuer un affichage avec un QReport (déjà configuré) par une requête SQL en ayant comme contrainte :
- une plage de date (du 11/11/12 au 11/11/12 pour un essai. en vrai je sélectionne les dates dans des DBEditDate)
- une plage de commerciaux (de COM_000001 à COM_000002. idem que pour les dates mais dans un DBEdit)
- récupérer un TOTAL des ventes par commerciaux
Problème :
En essayant d'utiliser plusieurs BETWEEN ma requête ne fonctionne pas. Je fais donc une sous requête (uniquement pour la date). Mais voilà, premier problème dans Access il m'affiche pour les dates les bons commerciaux mais les dates ne vont pas du 11/11/12 au 11/11/12 mais du 11/11/12 au 12/11/12, pourquoi ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 SELECT VENTE.COM_CODE AS cle, COMMERCIAUX.COM_NOM, COMMERCIAUX.COM_PRENOM, VEN_DATE, SUM(VEN_PRIX) AS TOTAL FROM COMMERCIAUX LEFT JOIN VENTE ON COMMERCIAUX.COM_CODE = VENTE.COM_CODE WHERE VENTE.COM_CODE IN (SELECT COM_CODE FROM VENTE WHERE VEN_DATE BETWEEN #11/11/12# AND #11/11/12#) GROUP BY VENTE.COM_CODE, COM_NOM, COM_PRENOM, VEN_DATE
EDIT : Problème résolu pour les dates, j'ai juste eu besoin de rajouter une ligne :
De plus les requêtes séparées (avec les BETWEEN) fonctionnent correctement mais comment les jumeler ? (j'utilise les paramètres mais le problème dût aux deux BETWEEN reste).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 SELECT COMMERCIAUX.COM_CODE AS cle, COMMERCIAUX.COM_NOM, COMMERCIAUX.COM_PRENOM, VENTE.CLI_CODE, VEN_DATE, VEN_PRIX, SUM(VEN_PRIX) AS TOTAL FROM COMMERCIAUX LEFT JOIN VENTE ON COMMERCIAUX.COM_CODE = VENTE.COM_CODE WHERE COMMERCIAUX.COM_CODE IN (SELECT COM_CODE FROM VENTE WHERE VEN_DATE BETWEEN #11/11/12# AND #11/11/12#) AND VEN_DATE BETWEEN #11/11/12# AND #11/11/12# GROUP BY COMMERCIAUX.COM_CODE, COM_NOM, COM_PRENOM, CLI_CODE, VEN_DATE, VEN_PRIX
A savoir également que le SUM(VEN_PRIX) AS TOTAL que j'utilise ne m'affiche pas un total global mais seulement le total de la dernière date vue (sur le QReport). cf image ci-dessous :
Je pense avoir bien résumé mon problème, je ne suis pas très bon en SQL (au cas où ça ne se verrai pas).
Merci à ceux qui prendrons le temps de se pencher sur mon problème
Partager