Problème de tranche (de pain de mie !!) [Access/SQL] - SQL/NoSQL - Programmation
Marsh Posté le 08-07-2003 à 12:45:21
J'utilise ça regarde si ça peux te servir :
Code :
|
Marsh Posté le 08-07-2003 à 14:09:32
Bah, le probleme, c'est que tout se passe avec du code, alors que le but pour moi eest de récupérer les résultats sous forme de requete (quitte à créer une table intermédiaire contenant les infos de chaque trnache, genre avec 3 champs : ValMin, ValMax et NomDe tranche
Des autres idées?
Marsh Posté le 08-07-2003 à 14:52:14
Kekchose comme ça .. avec des iif imbriqués
SELECT IIf(monchamp < "100", "tranch1", IIf(monchamp < "200","tranch2","tranch3" ))
FROM matable;
Marsh Posté le 08-07-2003 à 14:56:07
vttman2 a écrit : Kekchose comme ça .. avec des iif imbriqués |
OPui, mais tu t'imagines la taille de la requetes si j'ai plusieurs tranches? D'autre part, c'est pas flexible, je ne peux pas rajouter et enlever des tranches !
je penche plus vers une soltuion à deux tables : myTable et tabTranches, mais ensuite, je ne sais aps comment faire...
Marsh Posté le 08-07-2003 à 15:24:22
Yoyo@ a écrit : |
Oui j'imagine bien ... ça m'émeut pas !
Bon bien sur si t'as 50 tranches ...
Sinon tu peux créer un formulaire de paramètrage (ex: paramf)
avec des fourchettes et un libellé
ex :
champ10 => 100
champ11 => 200
libel1 => Tranche1
champ20 => 100
champ21 => 200
libel2 => Tranche2
libeldefaut => Hors tranche
Puis une requête paramétrée
SELECT
IIf(monchamp >= forms!paramf.champ10 and
monchamp < forms!paramf.champ11, forms!paramf.libel1,
IIf(monchamp >= forms!paramf.champ20 and
monchamp < forms!paramf.champ21, forms!paramf.libel2,
,forms!paramf.libeldefaut))
FROM matable;
Sinon autre soluce , tu crées une 2ème colonne et
par programme (parcours recordset) tu renseignes
cette colonne (tranche1, tranche2 ...) puis tu lances
ta requête sur les 2 colonnes la répartition étant alors
déjà effectuée ...
Bon si ça te convient pas, j'ai d'autres idées tordues
Marsh Posté le 08-07-2003 à 15:35:50
Le probleme, c'est que ce que j'appelais myTable, c'est plutot déja un résultat de requete, et je voulais utiliser cette requete en source d'une nouvelle requete !
Donc, tu peux considérer que j'ai une requeete myRequest avec un champ myValue prenant des valeur entieres, et on va dire une table tranches, contenant trois champs : nomTranche, minTranche, maxTranche !
Et je veux exécuter une requete par dessus ca qui me donnera deux colonne : myValue et nomDeTranche !
J'imagine que ca doit se faire par lintermédiare d'une requete (donc plus rapide) que par du VBA avec lequel je devrais créer une table en dur à partir de myRequest, et pour chaque enregistrement, aller chercher le nom de la tranche et la copier dans la table nouvellement créée.
Marsh Posté le 08-07-2003 à 16:03:50
Et ça tout simplement ?
table t1 =>
x
-------------
25
100
-15
10
233
table t2 =>
a b lib
--------------------
0 100 lib0
101 200 lib1
201 300 lib2
requête
SELECT t1.*, t2.*,iif(t2.a is null,"Hors fourchette","Ok fourchette" )
FROM t1 left JOIN t2
ON t1.x >= t2.a and t1.x <= t2.b;
Marsh Posté le 08-07-2003 à 16:06:44
J'avais oublié de poster le résultat
x a b lib Expr1002
--------------------------------------------------
25 0 100 lib0 Ok fourchette
100 0 100 lib0 Ok fourchette
-15 Hors fourchette
10 0 100 lib0 Ok fourchette
233 201 300 lib2 Ok fourchette
Marsh Posté le 08-07-2003 à 16:08:09
vttman2 a écrit : Et ça tout simplement ? |
savais plus justement si on pouvait faire ca avec une requete (meme si le principe me parait bete!)
Donc, je vais essayer tout ça, merci
Marsh Posté le 08-07-2003 à 12:25:35
Salut,
J'aurais besoin de votre aide sur le point suivant (que je simplifie pour rendre compréhensible) :
Je dispose d'une table myTable avec un seul champ "value"!
Je voudrais pouvoir écrire une query (quitte à créer une autre table à coté) qui puisse me retourner le champ de myTable, ainsi qu'un deuxieme champ me disant dans quel intervalle se trouve la valeur de myTable!
Un example, je veux décider :
< 100 => tranche1
>= 100 et < 200 => tranche2
>= 200 et < 250 => tranche3
>= 250 => tranche4
Donc, si ma table contient les valeurs :
Value
-----
-15
18
132
300
Je voudrais que ma requete me retourne :
Value Tranche
----- -------
-15 tranche1
18 tranche1
132 tranche2
300 tranche4
Avez vous des idées?
Je voudrais bien sur le nombre de tranches puisse etre plus grand, mais la, c'est juste pour un exemple !
yoyo*