Transposition code VBA EN SQL
Résolu/Fermé
castours
Messages postés
2955
Date d'inscription
lundi 18 septembre 2006
Statut
Membre
Dernière intervention
31 août 2019
-
Modifié par castours le 14/07/2011 à 08:57
castours Messages postés 2955 Date d'inscription lundi 18 septembre 2006 Statut Membre Dernière intervention 31 août 2019 - 22 juil. 2011 à 18:49
castours Messages postés 2955 Date d'inscription lundi 18 septembre 2006 Statut Membre Dernière intervention 31 août 2019 - 22 juil. 2011 à 18:49
A voir également:
- Transposition code VBA EN SQL
- Le code ascii en informatique - Guide
- Code puk bloqué - Guide
- Code telephone oublié - Guide
- Code activation windows 10 - Guide
- Code gta 4 ps4 - Guide
5 réponses
Leviathan49
Messages postés
257
Date d'inscription
jeudi 10 juin 2010
Statut
Membre
Dernière intervention
22 juillet 2011
70
Modifié par Leviathan49 le 20/07/2011 à 08:45
Modifié par Leviathan49 le 20/07/2011 à 08:45
Je verais bien quelque chose comme ca :
SELECT 'CoéfCharge' = CASE WHEN NbMois > Vetuste THEN QuotePart WHEN NbMois < Franchise THEN 100 ELSE 100 - ((NbMois - Franchise) * PctMens) END FROM Ta_Table
HostOfSeraphim
Messages postés
6750
Date d'inscription
jeudi 2 février 2006
Statut
Contributeur
Dernière intervention
31 juillet 2016
1 608
14 juil. 2011 à 09:51
14 juil. 2011 à 09:51
SQL ne permet pas de sélectionner des données avec des structures conditionnelles.
Au passage, tout ceci ne sert à rien, puisque que l'on passe ou non dans tes structures conditionnelles, CoéfCharge sera toujours égal à 100 - ((NbMois - Franchise) * PctMens).
Au passage, tout ceci ne sert à rien, puisque que l'on passe ou non dans tes structures conditionnelles, CoéfCharge sera toujours égal à 100 - ((NbMois - Franchise) * PctMens).
salut host et castours
je suis en collaboration avec castours sur ce sujet
le hic c'est que le % age dépasse le 100 % avec cette formule de calcul et c'est ce qu'on ne veut pas car ensuite il sert dans un calcul général de prix TTC
ex: 100% de 100e = 100e et 139% de 100e font plus...
nb. possible de t'envoyer l'exemple?
je suis en collaboration avec castours sur ce sujet
le hic c'est que le % age dépasse le 100 % avec cette formule de calcul et c'est ce qu'on ne veut pas car ensuite il sert dans un calcul général de prix TTC
ex: 100% de 100e = 100e et 139% de 100e font plus...
nb. possible de t'envoyer l'exemple?
HostOfSeraphim
Messages postés
6750
Date d'inscription
jeudi 2 février 2006
Statut
Contributeur
Dernière intervention
31 juillet 2016
1 608
14 juil. 2011 à 19:09
14 juil. 2011 à 19:09
Je n'utilise plus Access depuis des années, donc j'aurais un peu de mal. Mais en tout cas SQL ne règlera pas votre problème, malheureusement.
j'aurai cru avec un where par ex
HostOfSeraphim
Messages postés
6750
Date d'inscription
jeudi 2 février 2006
Statut
Contributeur
Dernière intervention
31 juillet 2016
1 608
14 juil. 2011 à 21:05
14 juil. 2011 à 21:05
La clause WHERE te permet de sélectionner des données en fonction de certaines conditions. Mais tu ne pourras pas, dans une requête, filtrer en te basant sur une donnée donc la valeur n'est pas fixe.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
castours
Messages postés
2955
Date d'inscription
lundi 18 septembre 2006
Statut
Membre
Dernière intervention
31 août 2019
217
Modifié par castours le 19/07/2011 à 12:02
Modifié par castours le 19/07/2011 à 12:02
Bonjour a tous
Je vous remercie d'etre pencher sur mon probléme. D'autre part, j'ai une petite base qui me serre d'exemple pour le calcul d'ou on applique la fonction de calcul.
On choisit un enregistrement qui affiche les données, puis un bouton qui nous renvoi le resultat dans unMsgBox.
Si cela peut vous aider a touver une solution a mon problème je peux la joindre sur le forum et joindre la requete en SQL.
Je vous remercie
Je vous remercie d'etre pencher sur mon probléme. D'autre part, j'ai une petite base qui me serre d'exemple pour le calcul d'ou on applique la fonction de calcul.
On choisit un enregistrement qui affiche les données, puis un bouton qui nous renvoi le resultat dans unMsgBox.
Si cela peut vous aider a touver une solution a mon problème je peux la joindre sur le forum et joindre la requete en SQL.
Je vous remercie
19 juil. 2011 à 13:06
19 juil. 2011 à 16:59
Je vous remercie
J'integre votre solution dans la requète si dessous?
Je vais l'essayer..
SELECT T_Facturation.CoéfCharge = case, T_Facturation.Franchise, T_Facturation.NbMois, T_Facturation.IdChif, T_Facturation.N°Fam, T_Facturation.Code, T_Facturation.[Dégradations imputables], T_Facturation.PrixUni, T_Facturation.Quantité, T_Facturation.Unité, T_Facturation.PctMens, T_Facturation.TVA, T_Facturation.Vetuste, T_Facturation.QuotePart, Nz([Quantité]*[PrixUni]) AS [Prix HT], Nz([MontantHt]*(1+[TVA])) AS [Prix TTC], T_Facturation.Observations, T_Facturation.MontantHt
WHEN NbMois > Vetuste Then QuotePart
WHEN NbMois < Franchise Then 100
ELSE 100 - ((NbMois - Franchise) * PctMens)
FROM T_Facturation;
19 juil. 2011 à 17:42
J'ai intégré la formule comme ceci.
Est ce la bonne Syntaxe?
SELECT T_Facturation.CoéfCharge = case, T_Facturation.Franchise, T_Facturation.NbMois, T_Facturation.IdChif, T_Facturation.N°Fam, T_Facturation.Code, T_Facturation.[Dégradations imputables], T_Facturation.PrixUni, T_Facturation.Quantité, T_Facturation.Unité, T_Facturation.PctMens, T_Facturation.TVA, T_Facturation.Vetuste, T_Facturation.QuotePart, Nz([Quantité]*[PrixUni]) AS [Prix HT], Nz([MontantHt]*(1+[TVA])) AS [Prix TTC], T_Facturation.Observations, T_Facturation.MontantHt
WHEN NbMois > Vetuste Then QuotePart
WHEN NbMois < Franchise Then 100
ELSE 100 - ((NbMois - Franchise) * PctMens)
FROM T_Facturation;
J'ai essayé mais cela ne fonctionne pas
Un message me dit:
erreur de syntaxe opérateur absent sur les trois lignes ci dessus
Modifié par Leviathan49 le 20/07/2011 à 08:46
case
when ... then
else
end
Ca donne donc plutôt :
20 juil. 2011 à 18:02
J'ai essayé mais toujours le meme message d'erreur.
Erreur de syntaxe et opérateur absent dans l'espression.
Manque t il des vergule, tréma ou autre signe de séparation ou de ponctuation?
Si Oui lesquelles et Ou?
merci de votre aide