Sicaire a écrit:
kronenbourg a écrit:
enlève le group by?!
Oui mais si j'enlève le GROUP BY il va faire le total de tout les enregistrements et vu que certain sont en double je n'arriverai pas au bon total.
Feddy a écrit:
C'est la même commande mais en moins quelques petites choses.
La commande va te donner le nombre d'enregistrement pour la condition having.
Code :
SELECT count(*)
FROM SourcingReportByProject
HAVING (((SourcingReportByProject.Contract) Like '?5%'))
Sur mon système (AS/400) ça s'écrit comme ça
Code :
SELECT count(*)
FROM SourcingReportByProject
WHERE SourcingReportByProject.Contract Like '?5%'
Avec cette requête j'ai 30000 enregistrements alors qu'avec ma requête si j'imprime le résultat il y en a 2800.
Ce que je veux c'est de savoir combien d'enregistrements la requête suivante retourne.
Code :
SELECT SourcingReportByProject.Project, SourcingReportByProject.Contract
FROM SourcingReportByProject
GROUP BY SourcingReportByProject.Project, SourcingReportByProject.Contract
HAVING (((SourcingReportByProject.Contract) Like '?5%'))
ORDER BY SourcingReportByProject.Project;
Il doit surement y avoir une façon (sans faire un table temporaire) ?!?
Le fait que tu es des enregistrements en double aurait été une information à donner car c'est différent maintenant.
Moi dans ce cas, je fais 2 commandes SLQ.
1)
Mettre le résultat de cette requette dans un fichier de travail
(je vais écrire en IBM SQL PUR).
Cette requette va lister dans un fichier la combinaison "Project" et "Contract" une seule fois même si cette combinaison est en double.
C'est la fonction DISTINCT qui fait cela
Code :
SELECT DISTINCT SourcingReportByProject.Project, SourcingReportByProject.Contract
FROM SourcingReportByProject
WHERE (((SourcingReportByProject.Contract) Like '?5%'))
;
2) Faire la commande SQL suivante avec le fichier de travail
Code :
SELECT count(*)
FROM Fichier_Travail
;