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

Langage SQL Discussion :

Regroupement à la fois sur somme et sur champ mémo


Sujet :

Langage SQL

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 48
    Points : 30
    Points
    30
    Par défaut Regroupement à la fois sur somme et sur champ mémo
    Bonjour,
    J'ai une table
    tbl_CapacityIncrement

    CI_CycleName texte clé
    CI_BD texte clé
    CI_Step texte clé
    CI_Site texte clé
    CI_Asset texte clé
    CI_Year date
    CI_CapacityChange numérique
    CI_Comments memo

    Donc en simplifié c'est une table qui permet sur la clé unique indiquée de rentrer pour une année donnée des changements de capacité de ligne et d'enregistrer un commentaire.
    Je n'ai pas de problème pour faire la somme par année des changements de quantité, mais ou je coince c'est pour faire la concaténation des comments

    A la fin je veux obtenir


    CI_CycleName texte clé
    CI_BD texte clé
    CI_Step texte clé
    CI_Site texte clé
    CI_Asset texte clé
    CI_Year date une seule ligne par année
    CI_CapacityChange numérique somme des changements pour les lignes de l'année considérée
    CI_Comments memo concaténation des commentaires pour les lignes de l'année considérée


    Tout piste, idée sera la bienvenue, je cherche aussi de mon côté
    Merci

  2. #2
    Membre éclairé Avatar de bstevy
    Homme Profil pro
    Solutions Architect
    Inscrit en
    Mai 2009
    Messages
    552
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Japon

    Informations professionnelles :
    Activité : Solutions Architect
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2009
    Messages : 552
    Points : 870
    Points
    870
    Par défaut
    ce genre d'extraction s'appelle un pivot... mais la concatenation n'est pas vraiment prévue, il va vous falloir gerer ca en aval, sur votre logiciel de rendu

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 48
    Points : 30
    Points
    30
    Par défaut
    Bonjour,
    J'ai un peu avancé en feuilletant les divers sites.
    J'ai maintenant récupéré et aménagé une fonction

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    Public Function ConcatForQuery(strRegroup As String, fldRegroup As String, strConcat As String, strTable As String, Optional strSep As String = "/") As String
    Dim db As Database
    Dim rst As Recordset
    Dim strResult As String
    Dim strsql As String
     
    Set db = CurrentDb()
    'Selectionne les memos du projet
    strsql = "select * from [" & strTable & "]" _
    & "where [" & strRegroup & "] = """ & fldRegroup & """;"
     
    Set rst = CurrentDb.OpenRecordset(strsql, dbOpenDynaset)
    'concatene les memos
    With rst
    If Not .BOF Then
    .MoveFirst
    Do Until .EOF
    If strResult = "" Then
    strResult = .Fields(strConcat)
    Else
    strResult = strResult & strSep & .Fields(strConcat)
    End If
    .MoveNext
    Loop
    End If
    End With
     
    rst.Close: Set rst = Nothing
    db.Close: Set db = Nothing
    ConcatForQuery = strResult
     
     
    End Function


    Cette fonction je l'appelle de la façon suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me![SF_Concat].Form.RecordSource = "SELECT *, Concatforquery(" & CI_Asset & ",[CI_Asset]," & CI_Comments & ",tbl_temp_CapacityIncrements," - ") AS Resultat FROM tbl_temp_CapacityIncrements GROUP BY CI_Asset;"

    J'ai un peu simplifié par rapport à ce que je recherche mais je me prends la tête avec la syntaxe des " des ' et des &, au mieux j'ai mon formulaire vide avec des #nom ou bien des erreurs de type, bref je patauge.
    Merci de l'aide

Discussions similaires

  1. Somme itérative sur un champ
    Par clodius dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 23/03/2012, 15h34
  2. [AC-2007] Comment calculer la somme de 3 champ sur 4 dans un graphique
    Par rch05 dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 17/02/2011, 16h55
  3. somme d'un champ sur une periode
    Par aldama dans le forum IHM
    Réponses: 5
    Dernier message: 08/05/2009, 16h02
  4. faire une somme recursive sur 1 colonne sur 2 dates consecutives et l'afficher
    Par 461219 dans le forum Adaptive Server Enterprise
    Réponses: 12
    Dernier message: 24/11/2008, 16h09
  5. Réponses: 3
    Dernier message: 16/02/2007, 12h35

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