Rechercher : dans
Par :

SQL, Plusieurs conditions?

Dernière réponse le 10 aoû 2008 à 06:26:28 Meliani, le 5 avr 2007 à 09:50:34 
 Signaler ce message aux modérateurs

Bonjour,
Je voudrais un faire un programme en SQL.
Le probleme j'ai pas envi de réecrire la même formule pour tous les champs.
Alors, je veux afficher par pas de 100 le pourcentage de clients qui se trouve à cette distance.
Exemple;

Client: distance: 100-200: 200-300:
1 220 20% 50%
2 3260 31% 26%
3....
4....
Voila et j'ai pas de champs 100-200 et 200-300.....jusqu'a9000-1000, je peux les créeer mais je sais aussi que je peux m'en passer . Les champs clients et distance sont données.

Je vous remercie d'avance pour votre aide

Configuration: Windows XP
Internet Explorer 6.0

Meilleures réponses pour « SQL, Plusieurs conditions? » dans :
SQL - Commande SELECT Voir Le langage de manipulation de données Le SQL est à la fois un langage de manipulation de données et un langage de définition de données. Toutefois, la définition de données est l'oeuvre de l'administrateur de la base de données, c'est pourquoi la...
[Excel] Colorer des cellules sur conditions VoirIl existe dans Excel des fonctions très pratiques mais peu connues et peu utilisées. Exemple : vous souhaitez qu'une cellule se colore automatiquement en rouge (ou autre mise en forme de police, de bordure, de trame) selon une condition : un...
Excel - Mises en forme conditionnelles illimitées VoirMises en Forme Conditionnelles Illimitées Introduction Principe Code Fichier joint Introduction La Mise en Forme Conditionelle (ou MFC) permet d'appliquer, à une cellule ou à plusieurs cellules sélectionnées, différents formats qui...
SQL - éviter les doublons dans un SELECT VoirProblème Comment éviter les doublons dans les résultats d'une requête SQL ? Solution Il suffit d'utiliser la clause DISTINCT entre SELECT et les champs. Exemple : SELECT distinct id,nom,prenom FROM matable Plus d'informations ...
SQL - Tri VoirTri des résultats Il est possible en SQL d'organiser les résultats grâce à la clause ORDER BY. La clause ORDER BY est suivie des mots clés ASC ou DESC, qui précisent respectivement si le tri se fait de manière croissante (par défaut) ou...
SQL - Restriction VoirExpression des restrictions Une restriction consiste à sélectionner les lignes satisfaisant à une condition logique effectuée sur leurs attributs. En SQL, les restrictions s'expriment à l'aide de la clause WHERE suivie d'une condition logique...
Javascript - Les structures conditionnelles VoirQu'est-ce qu'une structure conditionnelle? On appelle structure conditonnelle les instructions qui permettent de tester si une condition est vraie ou non, ce qui permet notamment de donner de l'interactivité à vos scripts. L'instruction...

1

Stringman621, le 5 avr 2007 à 11:41:50

Salut a toi !

Je pense avoir compris ce que tu souhaite faire, je te propose une solution :

for($i=1;$i<VALEUR_MAX;$i++)
{
  $req = "SELECT * FROM CLIENT WHERE distance BETWEEN ".100*$i." ";
  $req .= "AND ".100*($i+1).";

//-- execution de la requete
}



Dis moi si ca te convient ou alors si je suis à coté de la plaque ;)

Tchô !

Répondre à Stringman621

2

Meliani, le 6 avr 2007 à 10:45:26

Salut,
Au fait je parle du sql et j'utilise des commandes beaucoup plus simple je connais pas du tout ton langage, j'utilse easy php comme logiciel et le SQl je manipule une BD.
Et j'ai besoin de mettre à jour ma table; J'ai rentré tout les chapms 100-200 200-300 300-400 .... jusqu'à 9000 à la main, voila un exemple;


Ville Clients Longueur 100-200 200-300 300-400
A 1 254 0 0 0
A 2 100 0 0 0
B 3 369 0 0 0

Quand je fait;

UPDATE "name_TABLE"
SET
'100-200'=COUNT(CLIENTS) WHERE 'Longueur' BETWEEN 100 AND 200
GROUP BY 'ville'

Il m'affiche qu'il ya une erreur, en plus je veux savoir comment mettre à jour ma table d'un seule coup.
Merci pour ta réponse comme même
Merci d'avance mes amis

Répondre à Meliani

3

Stringman621, le 6 avr 2007 à 13:27:19

Re !

Ya un truc que je pige pas, tu dis que tu utilise easyphp (donc tu developpe en php), et tu dis que tu ne comprend pas mon code, mais mon code c'est aussi du php ! ;)
Bref, c'est pas grave c'était juste comme ca !

Je ne suis pas sur mais, je ne pense pas que tu puisse utiliser une fonction d'agregation (COUNT) dans une requete de mise a jour.
La solution serait de faire une requete (SELECT) qui te donne le compte de tes clients dans une zone et que le résultat de cette requete tu l'utilise dans ta requete de mise a jour :

Ex :

$req = " SELECT COUNT(bidule) FROM TRUC[...];" 
$var = [resultat de ta requete]

$update = "UPDATE TRUC2 SET cpte_bidule=".$var."[...]";

Voili Voilou

Si ya un truc qui coince n'hésite pas ! ;)

Répondre à Stringman621

4

Stringman621, le 6 avr 2007 à 13:38:06

Re re !

je viens de trouver un truc!
En effet tu ne peux utiliser les fonctions d'agregats que dans une clause SELECT ou HAVING :

http://www.loribel.com/info/memento/sql.html

Répondre à Stringman621

5

Meliani, le 6 avr 2007 à 14:49:33

Salut,
Ah ok, c'est pour cela que ça bloque!!!!
Trés tu assure trop en fait.
Si j'ai bien compris je dois créer une table intermédiaire pour compter les éléments. Je vais faire sa et je te dirai si sa marche
Merci encore une fois

Répondre à Meliani

6

Meliani, le 6 avr 2007 à 14:52:53

Oups, tu as ecris une zone donc un champ !! pas besoin de créer une autre table sa simplifie encore la tache je te dirai la suite

Répondre à Meliani

7

marina, le 19 mai 2008 à 11:23:30

Bonjour,
J'ai un problème pour exécuter ma syntaxe SQL. En fait, je voudrais faire une requête de style : select X from ... where Y=... and Z=....;....;....;...
La donnée Z doit prendre plusieurs valeurs différentes, et je n'arrive pas à écrire la requête correspondante.
Merci de votre aide

Répondre à marina

8

 oooopin, le 10 aoû 2008 à 06:26:28

AND Z in (...,...,...,)

Répondre à oooopin