Nous sommes actuellement le 12 Juil 2026, 09:49

Le fuseau horaire est UTC-5 heures [Heure d’été]




Publier un nouveau sujet Répondre au sujet  [ 9 message(s) ] 
Auteur Message
 Sujet du message: Requête SQL
MessagePublié: 22 Déc 2003, 11:12 
Hors-ligne
Fidèle
Fidèle
Avatar de l’utilisateur

Inscription : 08 Jan 2002, 11:08
Message(s) : 575
Je veux faire un requête SQL qui me retourne le nombres d'enregistrements qui correspondent à ma requête.

Voici ma requête:
Code :
SELECT SourcingReportByProject.Project, SourcingReportByProject.Contract
FROM SourcingReportByProject
GROUP BY SourcingReportByProject.Project, SourcingReportByProject.Contract
HAVING (((SourcingReportByProject.Contract) Like '?5%'))
ORDER BY SourcingReportByProject.Project;


J'ai essayé:
Code :
SELECT SourcingReportByProject.Project, SourcingReportByProject.Contract, Count(*) as ProjectQty
FROM SourcingReportByProject
GROUP BY SourcingReportByProject.Project, SourcingReportByProject.Contract
HAVING (((SourcingReportByProject.Contract) Like '?5%'))
ORDER BY SourcingReportByProject.Project;


Mais ça me retourne le nombres d'enregistrements par groupe et non le nombres d'enregistrements total.

Une idée ?

C'est sur un serveur MSSQL.


Dernière édition par Sicaire le 22 Déc 2003, 11:33, édité 1 fois.

Haut
 Profil  
Répondre en citant  
 Sujet du message:
MessagePublié: 22 Déc 2003, 11:19 
Hors-ligne
Répond à tout!
Répond à tout!

Inscription : 10 Jan 2002, 14:09
Message(s) : 2386
Localisation : Verdun
a l'intérieur du count() inscrivé le champ regrouper à compter, sinon il compte absolument tout.


Haut
 Profil  
Répondre en citant  
 Sujet du message:
MessagePublié: 22 Déc 2003, 11:22 
Hors-ligne
Fidèle
Fidèle
Avatar de l’utilisateur

Inscription : 08 Jan 2002, 11:08
Message(s) : 575
J'ai trouvé une solution mais ce n'est pas très élégant...

Je crée une Table temporaire et je fais un count sur cette table temporaire. Mais ce n'est pas très efficace !!


Une autre solution ?


Haut
 Profil  
Répondre en citant  
 Sujet du message:
MessagePublié: 22 Déc 2003, 11:32 
Hors-ligne
Fidèle
Fidèle
Avatar de l’utilisateur

Inscription : 08 Jan 2002, 11:08
Message(s) : 575
sanctus a écrit:
a l'intérieur du count() inscrivé le champ regrouper à compter, sinon il compte absolument tout.



Mais justement ce que je veux c'est de compter tout les enregistrements...mais la requête que j'ai fait retourne seulement le nombre d'enregistrement présent dans le groupe.

J'ai essayé:

Code :
SELECT count(SourcingReportByProject.Project and SourcingReportByProject.Contract) as ProjectQty
FROM SourcingReportByProject
GROUP BY SourcingReportByProject.Project, SourcingReportByProject.Contract
HAVING (((SourcingReportByProject.Contract) Like '?5%'))
ORDER BY SourcingReportByProject.Project;


Mais ça me retourne toujours le nombres d'enregistrements par groupe.


Haut
 Profil  
Répondre en citant  
 Sujet du message:
MessagePublié: 22 Déc 2003, 12:58 
Hors-ligne
Régulier
Régulier

Inscription : 06 Jan 2002, 23:47
Message(s) : 314
Localisation : Québec
enlève le group by?!


Haut
 Profil  
Répondre en citant  
 Sujet du message:
MessagePublié: 22 Déc 2003, 13:33 
Hors-ligne
Régulier
Régulier

Inscription : 16 Mars 2002, 20:10
Message(s) : 331
Sicaire a écrit:
sanctus a écrit:
a l'intérieur du count() inscrivé le champ regrouper à compter, sinon il compte absolument tout.



Mais justement ce que je veux c'est de compter tout les enregistrements...mais la requête que j'ai fait retourne seulement le nombre d'enregistrement présent dans le groupe.

J'ai essayé:

Code :
SELECT count(SourcingReportByProject.Project and SourcingReportByProject.Contract) as ProjectQty
FROM SourcingReportByProject
GROUP BY SourcingReportByProject.Project, SourcingReportByProject.Contract
HAVING (((SourcingReportByProject.Contract) Like '?5%'))
ORDER BY SourcingReportByProject.Project;


Mais ça me retourne toujours le nombres d'enregistrements par groupe.


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%'

_________________
P4T-E 1.6g
512 RAM
WinXP


Haut
 Profil  
Répondre en citant  
 Sujet du message:
MessagePublié: 22 Déc 2003, 14:32 
Hors-ligne
Fidèle
Fidèle
Avatar de l’utilisateur

Inscription : 08 Jan 2002, 11:08
Message(s) : 575
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) ?!?


Haut
 Profil  
Répondre en citant  
 Sujet du message: Re: Requête SQL
MessagePublié: 22 Déc 2003, 14:32 
Hors-ligne
Modérateur
Modérateur
Avatar de l’utilisateur

Inscription : 07 Jan 2002, 15:10
Message(s) : 3551
Localisation : Beauport, Québec
Sicaire a écrit:
Je veux faire un requête SQL qui me retourne le nombres d'enregistrements qui correspondent à ma requête.

Voici ma requête:
Code :
SELECT SourcingReportByProject.Project, SourcingReportByProject.Contract
FROM SourcingReportByProject
GROUP BY SourcingReportByProject.Project, SourcingReportByProject.Contract
HAVING (((SourcingReportByProject.Contract) Like '?5%'))
ORDER BY SourcingReportByProject.Project;


J'ai essayé:
Code :
SELECT SourcingReportByProject.Project, SourcingReportByProject.Contract, Count(*) as ProjectQty
FROM SourcingReportByProject
GROUP BY SourcingReportByProject.Project, SourcingReportByProject.Contract
HAVING (((SourcingReportByProject.Contract) Like '?5%'))
ORDER BY SourcingReportByProject.Project;


Mais ça me retourne le nombres d'enregistrements par groupe et non le nombres d'enregistrements total.

Une idée ?

C'est sur un serveur MSSQL.


J'essayerais peut-être ceci:

Code :
SELECT Count(*) From (SELECT SourcingReportByProject.Project, SourcingReportByProject.Contract
FROM SourcingReportByProject
GROUP BY SourcingReportByProject.Project, SourcingReportByProject.Contract
HAVING (((SourcingReportByProject.Contract) Like '?5%'))
ORDER BY SourcingReportByProject.Project);

_________________
Procyon,
Modérateur de la section Trouvailles


Haut
 Profil  
Répondre en citant  
 Sujet du message:
MessagePublié: 22 Déc 2003, 14:43 
Hors-ligne
Régulier
Régulier

Inscription : 16 Mars 2002, 20:10
Message(s) : 331
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
;

_________________
P4T-E 1.6g
512 RAM
WinXP


Haut
 Profil  
Répondre en citant  
Afficher les messages publiés depuis :  Trier par  
Publier un nouveau sujet Répondre au sujet  [ 9 message(s) ] 

Le fuseau horaire est UTC-5 heures [Heure d’été]


Qui est en ligne ?

Utilisateur(s) parcourant ce forum : Aucun utilisateur inscrit et 2 invité(s)


Vous ne pouvez pas publier de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum

Recherche de:
Aller vers :  
cron
Propulsé par phpBB® Forum Software © phpBB Group
Traduction et support en françaisHébergement de site