Page 1 sur 2
count + group by j'ai un blemme!!
Posté : 14 juin 2006, 12:48
par toto37
Bonjour,
J'ai une table ou je souhaite compter le nombre de personnes présente plusieurs fois dans cette meme table:
voici la requete que j'ai faite et je n'arrive pas a avoir ce que je veux, d'après des exemples cette syntaxe devrai fonctionner:
Code : Tout sélectionner
SELECT count(t.t_cid) as nb
FROM transactions as t
WHERE t.t_typeabo = 5
GROUP BY t.t_cid
HAVING nb > 1
Seulement je recoi comme erreur le msg suivant : 'Invalid column name 'nb'.', la base de données utilisée est SQL SERVER.
Merci d'avance
Posté : 14 juin 2006, 12:59
par zeus
Il me semble qu'on ne peut pas utiliser les alias dans la clause Having pour SQL SERVER
Essaye de remplacer
par
count + group by j'ai un blemme!!
Posté : 14 juin 2006, 13:08
par toto37
yes ca marche, mais ca me renvoi pas le bon résultat.
Ca me renvoi les count de chaque personnes presente plus d'une fois.
Pour etre clair dans ma table j'ai une seule personne présente deux fois ds la table.La requete me renvoi 2 (le nombre de fois que la personne est dans lma table.)Je devrai recevoir 1
Posté : 14 juin 2006, 13:15
par zeus
est-ce que la personne qui est 2 fois dans la table a le même id ?
count + group by j'ai un blemme!!
Posté : 14 juin 2006, 13:17
par toto37
oui!
la structure de la table est la suivante:
champs 1: id transaction
champs 2: id de la personne
Posté : 14 juin 2006, 13:20
par zeus
Donc, ce que je voudrai savoir, c'est si t.t_cid est bine l'identifiant d'une personne dans la table transaction
count + group by j'ai un blemme!!
Posté : 14 juin 2006, 13:21
par toto37
oui tout à fait
Posté : 14 juin 2006, 13:25
par zeus
C'est normal, tu as 2 fois la même personne et si tu les comptes, tu as 2 occurences de cette personne donc COUNT(t.t_cid) retourne 2
Par contre, pour obtenir 1 ....
count + group by j'ai un blemme!!
Posté : 14 juin 2006, 13:26
par toto37
et oui c'est ce que j'essaye de faire depuis hier....
quel idée de compter le nombre de personne présentes plusieurs fois ds la même table!
Posté : 14 juin 2006, 13:28
par guilt92
Tu ne peux pas caser un DISTINCT quelque part ?
SELECT DISTINCT COUNT ca marche pas ?
Posté : 14 juin 2006, 13:30
par zeus
je verrais bien une solution
Tu retourne simplement la liste des id en doublon et, en PHP, tu vois compte les lignes
$str_requete = "SELECT DISTINCT t.t_cid
FROM transactions as t
WHERE t.t_typeabo = 5
GROUP BY t.t_cid
HAVING COUNT(t.t_cid) > 1";
$o_result = mysql_query($str_requete);
if ($mysql_num_rows($o_result) > 0) {
echo "Doublons présents";
} else {
echo "Pas de doublons";
}
count + group by j'ai un blemme!!
Posté : 14 juin 2006, 13:45
par toto37
ayé!!!!
Merci pour ton exemple en php seulement tout mes traitements doivent etre fait en procédure stokées.... et oui car il s'agit dune procédure stokées éxécutée par un job ki tourne la nuit......
Si je pouvais utiliser php crois moi j'aurai bien été heureux!!
merci
SELECT count(DISTINCT t.t_cid) FROM transactions t
WHERE t.t_typeabo = 5
GROUP BY t.t_cid
HAVING count(t.t_cid) > 1
Posté : 14 juin 2006, 13:53
par zeus

ca marche un DISTINCT dans un COUNT ?
T'est pas sous MySQL, toi ...
EDIT : effectivement, je ne sais pas pourquoi je me suis mis en tête que tu travaillais sous MySQL vu que tu ne me l'a jamais dit
Bon bah désolé
count + group by j'ai un blemme!!
Posté : 14 juin 2006, 13:59
par toto37
sisi regarde plus haut j'ai ecri que je travaillais sous SQL SERVER

Posté : 14 juin 2006, 14:10
par zeus
Excuse moi j'ai du mélanger avec un autre post.
C'est ça d'aider plusieurs personnes en même temps
