begin process at 2012 05 26 21:18:22
  Trouver un code source :
 
dans
 
Accueil > Forum > 

SQL

 > 

Access

 > 

Requêtes

 > 

Requête access - VraiFaux imbriqués


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Requête access - VraiFaux imbriqués

mardi 24 novembre 2009 à 13:13:39 | Requête access - VraiFaux imbriqués

Nakemeg

Bonjour à tous,

J'ai un petit problème avec une expression dans ma requête. J'ai une expression nommée "Nb mois brut" qui me calcule un nombre de mois entre deux dates le résultat comporte deux décimales. Avec ce résultat je dois créer une autre expression pour déterminer le "Nb de mois acquis". Ce nombre de mois acquis diffère selon les conditions suivantes :

Si Nb mois brut <= 1 alors Nb mois acquis = 0
Si Nb mois brut >1<=2 alors Nb mois acquis = 1
Si Nb mois brut >2<=3 alors Nb mois acquis = 2
Si Nb mois brut >3<=4 alors Nb mois acquis = 3
Si Nb mois brut >4<=5 alors Nb mois acquis = 4
Si Nb mois brut >5<=6 alors Nb mois acquis = 5
Si Nb mois brut >6<=7 alors Nb mois acquis = 6
Si Nb mois brut >7<=8 alors Nb mois acquis = 7
Si Nb mois brut >8<=9 alors Nb mois acquis = 8
Si Nb mois brut >9 alors Nb mois acquis = 9

J'ai procédé de la sorte :

Nb mois acquis: VraiFaux([Nb mois brut]<="1";"0";VraiFaux([Nb mois brut]>"1"<="2";"1";VraiFaux([Nb mois brut]>"2"<="3";"2";VraiFaux([Nb mois brut]>"3"<="4";"3";VraiFaux([Nb mois brut]>"4"<="5";"4";VraiFaux([Nb mois brut]>"5"<="6";"5";VraiFaux([Nb mois brut]>"6"<="7";"6";VraiFaux([Nb mois brut]>"7"<="8";"7";VraiFaux([Nb mois brut]>"8"="9";"8";VraiFaux([Nb mois brut]>"9";"9";""))))))))

Malheureusement le résultat me renvoie 1 systématiquement.

Est ce que quelqu'un pourrait me donner une indication SVP je n'arrive pas à trouver de solution.

Merci par avance



mardi 24 novembre 2009 à 15:28:22 | Re : Requête access - VraiFaux imbriqués

tpoinsot

bonjour,
tes conditions devraient s'écrire
>"1" and <="2"

et puis tu peux simplifier, car quand tu testes >"1" tu es dans le 'else' du test <="1" donc c'est certain. contente toi du <="2".
tu es certain de devoir mettre des guillements ?

thip
mardi 24 novembre 2009 à 15:34:09 | Re : Requête access - VraiFaux imbriqués

ed73

Bonjour,

Ya quand même bien plus simple !!!

Nb mois acquis = min(int(Nb Mois brut),9)


mardi 24 novembre 2009 à 15:42:41 | Re : Requête access - VraiFaux imbriqués

tpoinsot

raté ed73 : relis l'énoncé. Mais tu as raison, il y a plus simple, mais ce n'était pas la question.

pour i <= x < i+1, int(x) = i
il faut i < x <= i+1, f(x) = i


thip
mardi 24 novembre 2009 à 15:57:02 | Re : Requête access - VraiFaux imbriqués

tpoinsot


en C ce serait la fonction ceil :
Nb mois acquis = max(0,min(ceil(Nb Mois brut),9))

selon le sql, il peut y avoir une fonction qui remplace, sinon on peut utiliser "-int(-x)"

[Nb mois acquis] = max(0,-min(int(-[Nb Mois brut]),9))

thip
jeudi 26 novembre 2009 à 06:20:10 | Re : Requête access - VraiFaux imbriqués

Nakemeg

Un grand merci à vous deux pour vos réponses !

tpointsot, j'ai suivi ton conseil et en effet il fallait que je me contente de mettre <="2" etc et ça fonctionne parfaitement. Pour les guillemets ils ne sont pas nécessaire en effet.

Par contre j'ai voulu tester ta deuxième solution
[Nb mois acquis] = max(0,-min(int(-[Nb Mois brut]),9)) malheureusement ça ne fonctionne pas il me dit que la syntaxe n'est pas valide pourrais tu me donner une explication détaillée de l'expression stp.

merci d'avance

jeudi 26 novembre 2009 à 22:09:40 | Re : Requête access - VraiFaux imbriqués

tpoinsot

Bonjour,
pour commencer, j'ai mis le - devant le min au lieu de le mettre devant int
[Nb mois acquis] = max(0,min(-int(-[Nb Mois brut]),9))

max(0, ... ) = élimine les négatifs, prends 0
min( ..., 9) = prends 9 si >9

-int(-x):
int(1.1) = 1 ; c'est pas ce que tu veux
int(-1.1) = -2 (idem de 1 à 2-epsilon)
-int(-1.1) = 2 (idem de -2 à -1-epsilon)

Tu devras peut-être remplacer les ',' par des ';'

thip


Cette discussion est classée dans : nb, mois, vraifaux, brut, acquis


Répondre à ce message

Sujets en rapport avec ce message

requete avec date [ par nawal59 ] salut,SELECT Table1.Aide, Table1.NumDossier, Table1.TypeDemAccomp,Table1.dateFicheEtabli, Table1.date1ercontact, Table1.nom, Table1.nomJeuneFille, Tab problème de Date lorsque l'intervalle est à cheval sur 2 mois... [ par nico_ayci ] salut à tous ! j'ai une fonctionnalité de recherche qui donne la possibilité de trouver des enregistrements selon leur date, à plus ou moins X jours. comment compter le nb de réponse à une requete? [ par sisi35 ] Bonjour,Je code en vb.net et je voudrais récupérer le nb de ligne d'une requete, voici le début de mon code: connexion = New SqlCeConnection("Data sou requete date [ par Rjoe ] bonjour ma question est la suivantedans mon aplication je souhaite faire une verification pour un mois courant ,or, il se peut que ce mois soit févrie Pb somme de plusieurs enregistrement [ par skyman272 ] J'ai 2 tables 1- Clients (nom, société, adresse)                   2- Facture (montant, date)Je voudrais faire une requette qui me donne les so Criteres de requetes en fonction d'une période (année + mois) [ par ronando ] Bjr à tous,J'ai un petit souci, j'ai une table facture (n°,montant,annee,mois)je laisse le choix a l'utilisateur d'afficher les factures entre une pér Need help sur une requete [ par reyman ] Bonjour a tous Je scotche sur une requete donc je fais appel a vous. J'ai la table suivante (2 colonnes : ColMontant et ColDate) : ColMontant | Col Encore un problème de dates avec MySQL [ par ImmortalPC ] Salut, je deviens fou avec mon calendrier J' ai une date de commencement et une date de fin respectivement : date_start et date_end Leur type : datet requette de regroupement - problème [ par bename ] Bonjour,j'ai  créé une requette qui regroupe deux champs et qui trie le troisième, mais  le groupement se déforme apres le trie, le resultat me tri le convertir char en mois [ par lucki ] Bonjour à tous et bonne journée Voila mon problème :J'ai un champ "freqamois" qui définit en char la fréquence, en mois, d'une opération banquaire(com


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 3,354 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales