IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Requêtes MySQL Discussion :

problème de if dans mon select en mysql


Sujet :

Requêtes MySQL

  1. #1
    Membre régulier
    Inscrit en
    Février 2008
    Messages
    455
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 455
    Points : 109
    Points
    109
    Par défaut problème de if dans mon select en mysql
    Bonjours,
    j'ai un problème avec mon affichage de données car je veu affiché de donnée qui sont dans ma bdd mais le problème c'est que je doit fair un regroupement par customers_from donc tous ce qui commence par 1st... je le met en 1st_ j'ai un bout de code qui marche a merveile qui est le suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT IF(customers_from LIKE '1st%','1st_',customers_from) AS Origin,
    Mais le problème c'est que je veu pas regroupé tous ceu qui commence par 1st mais aussi ceu qui commence par 'THNL%' et encore d'autre je sais pas si je fais une erreur de syntax ou si c'est impossible mais j'ai fait comme sa.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT (IF (customers_from LIKE '1st%','1st_',customers_from) and IF(customers_from LIKE 'THNL%','THNL_',customers_from) and IF(customers_from LIKE '%Key_Goo%','_Key_Goo_',customers_from)  )    AS Origin,
    je vous remerci de votre aide.

  2. #2
    Membre à l'essai
    Homme Profil pro
    Webmaster
    Inscrit en
    Janvier 2006
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 17
    Points : 19
    Points
    19
    Par défaut or ou and?
    bonjour,
    A mon avis tu veux surement mettre à jour les enregistrements qui commencent par 1st OU THNL (mais pas par les deux à la fois)
    donc j'imagine que ta requête devient
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    SELECT (IF (customers_from LIKE '1st%','1st_',customers_from) OR IF(customers_from LIKE 'THNL%','THNL_',customers_from) OR IF(customers_from LIKE '%Key_Goo%','_Key_Goo_',customers_from)  )    AS Origin,

  3. #3
    Membre régulier
    Inscrit en
    Février 2008
    Messages
    455
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 455
    Points : 109
    Points
    109
    Par défaut
    Merci Jerome218

    Mais j'avais déjà essayer ça de plus que sa me donne le même résultats qui sont des 1 et des 0 aulieu du text demandé.

    Mais merci quand même

  4. #4
    Membre régulier
    Inscrit en
    Février 2008
    Messages
    455
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 455
    Points : 109
    Points
    109
    Par défaut
    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

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
     
    </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

Discussions similaires

  1. Problème de height dans mon conteneur
    Par darcy dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 19/12/2006, 09h37
  2. [C# 2.0] Problème de DLL dans mon site web
    Par Rodie dans le forum ASP.NET
    Réponses: 2
    Dernier message: 04/12/2006, 16h43
  3. Problème d'affichage dans mon état
    Par gontrand16 dans le forum Access
    Réponses: 6
    Dernier message: 05/07/2006, 20h29
  4. Problème de paramètres dans mon code javascript
    Par cocacollection dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 15/03/2006, 10h53
  5. (urgent) Erreur dans mon select à cause du NOT IN
    Par MoTUmBo dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 29/11/2005, 20h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo