IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Requêtes et SQL. Discussion :

Faire des sommes sur chaque valeur


Sujet :

Requêtes et SQL.

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    158
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 158
    Points : 82
    Points
    82
    Par défaut Faire des sommes sur chaque valeur
    Bonjour,
    J'ai une table qui contient les données sous cette forme :
    CODE TT DUR
    KD MOD 2
    KD SUP 1
    KD COR 2
    ND MOD 1
    EN MOD 1
    EN MOD 1
    EN SUP 2
    Je voudrais créer une requete qui "additionne" les valeurs pour chaque code, ce qui donnera :
    CODE TT DUR
    KD MODSUPCOR 5
    ND MOD 1
    EN MODSUP 4

    Je sais pas si cela est possible, avez-vous une petite idée?
    Merci
    KD MODSUPCOR

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 656
    Points : 34 370
    Points
    34 370
    Par défaut
    salut,
    tu as ici deux notions distinctes à traiter
    - la concaténation de valeurs
    - la somme de valeur

    des indices dans la FAQ : http://access.developpez.com/sources...QLLigneColonne

    et dans l'aide en ligne sur SUM()

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    158
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 158
    Points : 82
    Points
    82
    Par défaut
    J'ai testé le lien donné et je l'ai adapté (enfin essayé car cela ne fct pas).
    Je travaille sur une requete nommé R_AVEC_TT_DUREE et pas une table
    Voici le code de mon module :
    Public Function RecupTT(sep_codepat As Text) As String
    Dim res As DAO.Recordset
    Dim SQL As String
    'selectionne les TT du codepat
    SQL = "SELECT TRAITEMENT FROM R_AVEC_TT_DUREE WHERE sep_codepat=" & sep_codepat
    Set res = CurrentDb.OpenRecordset(SQL)
    'concatene les différents enregistrements
    While Not res.EOF
    RecupTT = RecupTT & res.Fields(0).Value & " "
    res.MoveNext
    Wend
    'enleve le dernier espace
    RecupTT Left(RecupTT, Len(RecupTT) - 1)
    'Libere la memoire
    Set res = Nothing
    End Function
    et voici ma requete :
    SELECT DISTINCT R_AVEC_TT_DUREE.sep_codepat, RecupTT(sep_codepat) AS patient
    FROM R_AVEC_TT_DUREE;
    Et enfin voici le message d'erreur : erreur de compilation. dans l'expression 'RecupTT(sep_codepat)'.
    Je suis bloquée, pouvez-vous m'eclairer dans mon erreur
    Grand merci

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 84
    Points : 40
    Points
    40
    Par défaut
    D'après l'exemple dont tu t'es inspirée, je crois que tu as oublié un "=" dans une de tes lignes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RecupTT = Left(RecupTT, Len(RecupTT) - 1)
    Dans ta requête, je ne sais pas si tu es obligée de répéter le nom de ta table R_AVEC_TT_DUREE pour ton champ, puisque tu travailles dans cette table. Après, je ne m'y connais pas assez pour savoir s'il y a un gain ou une perte de temps.

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    158
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 158
    Points : 82
    Points
    82
    Par défaut
    Merci j'avais pas vu cet oubli mais ca ne change pas mon pb toujours le même message d'erreur qd je lance ma requete

  6. #6
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 656
    Points : 34 370
    Points
    34 370
    Par défaut
    salut,
    je propose ceci :
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT sep_codepat, RecupTT(sep_codepat) AS patient
    FROM R_AVEC_TT_DUREE GROUP BY R_AVEC_TT_DUREE.sep_codepat;

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    158
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 158
    Points : 82
    Points
    82
    Par défaut
    Bonjour,
    Je suis tjs sur mon pb. Après de nombreux essais, je pense que c'est cette partie qui bloque WHERE sep_codepat=" & sep_codepat
    j'ai un message "erreurd'exécution '3061' trop peu de parametres. 1 attendu"
    c'est peut etre une erreur de synthaxe ?
    Qu'en pensez-vous?

  8. #8
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 656
    Points : 34 370
    Points
    34 370
    Par défaut
    salut,
    bon alors on va reprendre,
    - tu passes quelle valeur en paramètre (à mettre en type String au lieu de Text selon moi)?
    - quelle est la valeur de SQL avant son exécution ?

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    158
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 158
    Points : 82
    Points
    82
    Par défaut
    Bon j'ai trouvé, il fallait mettre :
    WHERE sep_codepat='" &sep_codepat &"'"
    Mais par contre c'est super lent...pls min pour tout afficher
    Merci pour votre aide

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 14/04/2015, 16h39
  2. Faire des retry sur des erreurs FTP
    Par fejjal dans le forum Réseau
    Réponses: 4
    Dernier message: 15/02/2006, 23h34
  3. Faire des modifs sur une sheet excel Read Only via VBA
    Par beegees dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 15/11/2005, 18h02
  4. Commande date. Faire des opération sur l'heure?
    Par fidififouille dans le forum Linux
    Réponses: 9
    Dernier message: 23/08/2004, 15h16
  5. [VB6][impression]Comment faire des effets sur les polices ?
    Par le.dod dans le forum VB 6 et antérieur
    Réponses: 11
    Dernier message: 08/11/2002, 10h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo