Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > Requêtes et SQL.
Requêtes et SQL. Tout ce qui concerne vos questions sur les requêtes et le SQL sous Access se trouve ici.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 19/07/2011, 23h34   #1
Nouveau Membre du Club
 
Inscription : avril 2005
Messages : 103
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 103
Points : 39
Points : 39
Par défaut Syntaxe SQL pour access 2003

Bonjour
J'essaie d'intégrer une partie conditionnel dans le resultat du champ CoéfCharge dans la requete suivante.
J'ai une erreur.
Pouvez vous m'aider a corriger la syntaxe de ma requéte pour qu'elle fonctionne et me donne un resulat suivant les conditions.
Je suis avec access 2003
je vous remercie
guy
Code SQL :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
 
SELECT T_Facturation.CoéfCharge, 
   CASE expression
      WHEN  NbMois > Vetuste  THEN  QuotePart
               WHEN NbMois < Franchise THEN 100
     Else 100 - ((NbMois - Franchise) * PctMens)
   End 
     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], 
  [CoéfCharge]*[Prix HT] AS MontantHt, 
  T_Facturation.Observations, T_Facturation.CoéfCharge,
FROM T_Facturation;
castours est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/07/2011, 08h15   #2
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 11 008
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 11 008
Points : 18 279
Points : 18 279
Envoyer un message via MSN à CinePhil
Je crois que dans Access il faut utiliser IIF au lieu de CASE.
Et tu as une virgule en trop juste avant le FROM !
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/07/2011, 18h15   #3
Nouveau Membre du Club
 
Inscription : avril 2005
Messages : 103
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 103
Points : 39
Points : 39
Par défaut Erreur

Bonjour
J'ai un message d'erreur m'indiquant: erreur syntaxe, opérateur absent dans l'expression.
Pouvez vous m'indiquer les erreurs
Je vous remercie
Guy
castours est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/07/2011, 00h14   #4
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 11 008
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 11 008
Points : 18 279
Points : 18 279
Envoyer un message via MSN à CinePhil
Citation:
Envoyé par castours Voir le message
Bonjour
J'ai un message d'erreur m'indiquant: erreur syntaxe, opérateur absent dans l'expression.
Pouvez vous m'indiquer les erreurs
Bis repetita :
Citation:
Envoyé par CinéPhil
Et tu as une virgule en trop juste avant le FROM !
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/07/2011, 20h28   #5
Modérateur
 
Homme René MAROT
Inscription : octobre 2005
Messages : 5 470
Détails du profil
Informations personnelles :
Nom : Homme René MAROT
Localisation : Canada

Informations forums :
Inscription : octobre 2005
Messages : 5 470
Points : 7 552
Points : 7 552
il n'y a pas de Case en SQL access il faut utiliser IIF(condition; valeurSiVrai; valeurSiFaux) ou une fonction publique définie par l'utilisateur.

dans ton cas cela devrait ressembler à si j'ai bien compris ta syntaxe :

Code sql :
iif(NbMois > Vetuste; QuotePart; iif(NbMois < Franchise; 100; 100 - ((NbMois - Franchise) * PctMens)))


Et il est beaucoup plus facile, et surtout BEAUCOUP moins frustrant, d'utiliser l'éditeur de requête de Access qui permet en quelques "glisser/coller" de faire des requêtes très sympatique. Si tu veux voir le SQL généré il suffit de basculer l'affichage.

A+
__________________
Vous voulez une réponse rapide et efficace à vos questions téchniques ? Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
marot_r est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 30/07/2011, 09h03   #6
Nouveau Membre du Club
 
Inscription : avril 2005
Messages : 103
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 103
Points : 39
Points : 39
Par défaut remerciements

Bonjour
Je vous remercie car votre proposition de code à résolu mon probleme
Guy
castours est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/08/2011, 18h41   #7
Modérateur
 
Homme René MAROT
Inscription : octobre 2005
Messages : 5 470
Détails du profil
Informations personnelles :
Nom : Homme René MAROT
Localisation : Canada

Informations forums :
Inscription : octobre 2005
Messages : 5 470
Points : 7 552
Points : 7 552
Je viens d'apprendre qu'il existait une fonction Switch() qui est une sorte de Select ... case pour SQL.

A+
__________________
Vous voulez une réponse rapide et efficace à vos questions téchniques ? Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
marot_r est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h32.


 
 
 
 
Partenaires

Hébergement Web