zen69
Messages postés584Date d'inscriptionjeudi 28 décembre 2006StatutMembreDernière intervention29 avril 2010
-
19 sept. 2007 à 19:12
zen69
Messages postés584Date d'inscriptionjeudi 28 décembre 2006StatutMembreDernière intervention29 avril 2010
-
4 oct. 2007 à 15:29
Salut a tous!
J'ai un probleme avec un requete de type select... Ca parait simple a premiere vue, mais le resultat escompter n'y est pas.
Je veux faire un requete qui cherche les valeur distinct de deux champs (via php).
J'ai essayer la methode suivante:
SELECT DISTINCT (CONCAT(LEFT(upd,8) ,ip)), COUNT(id) AS hits, LEFT(upd,8) AS date, 'Unique' AS organized FROM sess WHERE ((LEFT(upd,8)>='".$dtFrom."')AND(LEFT(upd,8)<='".$dtTo."')) GROUP BY LEFT(upd,8) ORDER BY LEFT(upd,8) ASC
Mais ca ne fonctionne pas... car le resultats est identique quand je fais:
SELECT COUNT(id) AS hits,
LEFT(upd,8) AS date, 'Unique' AS organized FROM sess WHERE
((LEFT(upd,8)>='".$dtFrom."')AND(LEFT(upd,8)<='".$dtTo."')) GROUP
BY LEFT(upd,8) ORDER BY LEFT(upd,8) ASC
Et j'ai verifier dans la table et il existe plusieurs entre du meme ip sur les dates.
zen69
Messages postés584Date d'inscriptionjeudi 28 décembre 2006StatutMembreDernière intervention29 avril 20101 4 oct. 2007 à 15:29
Finalement j'en etais venu à créer cette requete
$qry = "SELECT LEFT(upd,8) AS date, COUNT(ip) AS hits, COUNT(DISTINCT ip) AS uniques, 'Over All' AS organized";
$qry . = " FROM sess WHERE ((LEFT(upd,8)>='".$dtFrom."')AND(LEFT(upd,8)<='".$dtTo."')) GROUP BY LEFT(upd,8) ORDER BY LEFT(upd,8)";
cs_skweeky
Messages postés259Date d'inscriptionmercredi 3 mai 2006StatutMembreDernière intervention11 janvier 20108 23 sept. 2007 à 06:20
Salut
C'est plutôt normal étant donné que dans les 2 cas tu utilise un GROUP BY sur ce qui semble être la date. Dans les 2 cas tu auras 1 enregistrement par date et donc le distinct ne changement rien à celà !
Si tu veux les combinaison de date et adresse IP, fait bien SELECT DISTINCT IP, DATE, mais vire le GROUP BY qui fait double emploi !