Problème de suivit entre deu requette sql

Fermé
sinifer Messages postés 312 Date d'inscription mardi 12 février 2008 Statut Membre Dernière intervention 12 mars 2013 - 25 mai 2009 à 16:55
sinifer Messages postés 312 Date d'inscription mardi 12 février 2008 Statut Membre Dernière intervention 12 mars 2013 - 26 mai 2009 à 11:35
Bonjour,

je fais deux requette la première est pour cherché tous les customers_from et la deuxième me mets les resultats voulut avec les customers_from de la première requette le problème c'est que sur les customers_from je les regroupe par exemple comme j'ai beaucoup de 1st_blabla, 1st_blibli, 1st_bloblo..... je fais sa=
SELECT IF(customers_from LIKE '%1st%','1st_',customers_from) AS Origin,

pour pouvoir mettre tous ce qui commence par 1st dans 1st_
Mon problème c'est que quant j'affiche le résultat il me mets 76 alors que normalement si j'affiche tou sa me sort sa:

          1st  	 461  	 94  
	1staon 	5 	2 	
	1stnet 	204 	1 	
	1st_456 	426 	72 	
	1st_etoi 	40 	0 	
	1st_etoicaf 	3 	0 	
	1st_pps 	45 	2 	
	1st_rte 	2 	0 	
	1st_stl 	3 	0 	 

donc un total de : 171

comme sa marchait pas comme sa j'ai fait ça:
SELECT substr(customers_from, 1, 3) AS Origin, 

mais le résultat affiché est de 94
donc on peu voir qu'il prend que le premier 1st et pas les autres

par ontre tous ceu qui n'ont pas besoin d'être regroupé sont juste
je vous montre mon code comme sa vous pourrez peut etre ieu voir l'erreur

</br></br>
<b> FRANCE </b>
	<table border="1">
		<tr style="text-align: center; background-color:#FFAD5B; font-weight:bold;">
			<th> France </th>
            <th> Prestataire </th>
			<th> V G  </th>
			<th> Commandes </th>
            <th> Tx Conv. </th>
            <th> C.A </th>
            <th> Mmc </th>
		</tr>
        
<?php


	// REQUETE 1 : chercher les prestataires et les regrouper par les 3 premiere lettres et compter le nombre de voyance gratuite 
	$query = "SELECT (customers_from ) AS Origin, 
       COUNT(*) AS effectif_vg
		FROM customers 
		WHERE customers_id>='0'
		" . $condition . "
		GROUP BY Origin ";
	$result_vg = mysql_query($query) ;

	while ($row = mysql_fetch_array($result_vg)) 
{  

 
	// REQUETE 2 : 	REQUETE QUI VA RECUPERER LES DONNES DE VG, NB DE COMMANDES, CA, MMC
			$query_produit = 
					" SELECT 
					   COUNT(DISTINCT cu.customers_id) AS effectif, count(co.commandes_status) AS command,
					   AVG(co.commandes_montant) AS Mmc 
						FROM customers cu
						INNER JOIN commandes co  
						ON cu.customers_id=co.customers_id 
						WHERE  co.commandes_status='1'
						and   customers_from LIKE '{$row['Origin']}%' " . $condition . "
						 ";
						
						if ($row['Origin'] == '') {
			$query_produit = " SELECT 
					   COUNT(DISTINCT cu.customers_id) AS effectif, count(co.commandes_status) AS command,
					   AVG(co.commandes_montant) AS Mmc 
						FROM customers cu
						INNER JOIN commandes co  
						ON cu.customers_id=co.customers_id 
						WHERE   co.commandes_status='1'
						and   customers_from = '' " . $condition . "
						 ";
													}
						
					$result = mysql_query($query_produit) ;	


	while ($row1 = mysql_fetch_array($result)) 
	{	
					
?>
	 <tr>
			<td style="background-color:#CCCCCC;">  </td>
            <td style="text-align:center;"> <?php echo $row['Origin'] ?> </td>
			 <td style="text-align:center;"> <?php echo $row['effectif_vg'] ?> </td>
			 <td style="text-align:center;"> <?php echo $row1['command'] ?> </td>
             <td style="text-align:center;"><?php echo round(($row1['command'] / $row['effectif_vg']) * 100, 2); ?> % </td>
			 <td style="text-align:center;"> <?php echo round($row1['command']*$row1['Mmc']) ?>  </td>
             <td style="text-align:center;"> <?php echo round($row1['Mmc'] ,2) ?>  </td>
                
	
<?php
} 	
	}
?>
</tr>
</table>



Merci
A voir également:

1 réponse

sinifer Messages postés 312 Date d'inscription mardi 12 février 2008 Statut Membre Dernière intervention 12 mars 2013 11
26 mai 2009 à 11:35
Persone ne trouve de solution??
0