problème calcul

Invité
Invité n'ayant pas de compte PHPfrance

30 mai 2006, 16:25

Bonjour,

Voila, j'ai un problème avec une requete, cela doit etre tout bete, mais j'ai un trou.
voici ma table, elle s'appelle tableau_prix

Code : Tout sélectionner

CODE_TAB NUM_CONTRAT PERIODICITE_SEM SUPERFICIE TARIF 1 1 1 20 15.00 2 1 1 40 20.00 3 1 1 60 25.00 4 1 1 80 30.00 5 1 1 100 35.00 6 1 1 120 40.00 7 1 2 20 25.00 8 1 2 40 35.00 9 1 2 60 35.00 10 1 2 80 40.00 11 1 2 100 45.00 12 1 2 120 50.00 15 1 3 20 35.00 16 1 3 40 40.00 17 1 3 60 45.00 18 1 3 80 50.00 19 1 3 100 55.00 20 1 3 120 60.00

Donc, en faite je voudrai récupérer le nombre de valeur différente pour periodicite_sem. En l'occurence, ici 3 car il y a 1, 2 et 3

En faite, j'arrive a faire afficher 1, 2, 3 ou le nombre pour chacun 6,6,6 ou encore le nombre totale 18 mais pas 3.

Merci d'avance.
J'espère que vous aurez compris.

Mammouth du PHP | 1353 Messages

30 mai 2006, 16:30

EDIT : Désolé mal lu réponse inapproprié et impossible d effacer :(
Modifié en dernier par guilt92 le 30 mai 2006, 16:31, modifié 1 fois.

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

30 mai 2006, 16:30

Dans la doc SQL, il existe la fonction COUNT qui permet de compter le nomre d'occurence.

donc si tu fait une requete qui regroupe les différentes valeurs de periodicite_sem, tu devrais pouvoir t'en sortir ;)

http://www.asp-irine.com/rubriques/cour ... ns_sql.htm
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

30 mai 2006, 16:32

Code : Tout sélectionner

SELECT DISTINCT(PERIODICITE_SEM) FROM table WHERE PERIODICITE_SEM=(SELECT MAX(PERIODICITE_SEM) FROM TABLE) ORDER BY PERIODICITE_SEM
Je sais pas si c'est ça que tu veux, mais ca devrait te donner 3...
:shock:

je pense qu'il veut plutot compter le nombre de valeur différente de periodicité_sem

De plus, je tiens à rappeller, dans le postulat où tu utilises MySQL, que les sous-requetes ne sont pas disponibles avant la v 4.1 ;)
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Mammouth du PHP | 1353 Messages

30 mai 2006, 16:39

oui entièrement désolé j ai réalisé ca à la relecture et je voulais effacer mais comme tu avais posté une autre réponse dans l interval je ne pouvais pas :( . D'ou le EDIT :(

Invité
Invité n'ayant pas de compte PHPfrance

30 mai 2006, 16:39

merci, j'ai la version MySQL 5.0.17 mais cela me marque que j'ai une erreur de syntaxe.
En effet je pense que je dois utiliser une requete imbiqué et un count. Mais je n'arrive pas a trouver la manière de procédé.(sans erreur)

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

30 mai 2006, 16:41

@guilt : pas grave ;)

@invité : pas la peine de faire si compliqué

Est-ce que tu as suivi mon lien ?
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Invité
Invité n'ayant pas de compte PHPfrance

30 mai 2006, 16:42

escuse si ça marche en faite

merci

Invité
Invité n'ayant pas de compte PHPfrance

30 mai 2006, 16:44

mais en faite non, ça marche pas. car mon champs periodicité semaine peut très bien ne pas etre 1, 2, 3 mais etre 1,3,5

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

30 mai 2006, 16:47

:-k est-ce que tu es sur ? ce n'est pas parce que ça retourne 3 que ça marche ... :?

Essaye de rajouter une ligne pour voir si tu obtiens bien toujours le bon résultat

De plus, il existe une requete beaucoup plus simple

Code : Tout sélectionner

SELECT COUNT(DISTINCT(periodicite_sem)) FROM table
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Invité
Invité n'ayant pas de compte PHPfrance

30 mai 2006, 16:48

oui, en faite c'est tout con, je me rappelai plus que l'on pouvais faire count(distinct...)

SELECT COUNT( DISTINCT periodicite_sem )
FROM tableau_prix
where num_contrat='1'

merci beaucoup

Invité
Invité n'ayant pas de compte PHPfrance

30 mai 2006, 16:48

oups pas vu que tu avai repondu

merci