Agregats [Résolu]

Signaler
Messages postés
34
Date d'inscription
mardi 18 décembre 2007
Statut
Membre
Dernière intervention
12 mai 2009
-
Messages postés
34
Date d'inscription
mardi 18 décembre 2007
Statut
Membre
Dernière intervention
12 mai 2009
-
Bonjour a tous !

Je voudrai faire un requête avec plusieurs Agregats en SQL en utilisant des connexions ADO
Pour le moment je voudrai faire un requête comme ça :
SELECT SUM(Champ1), Champ2
FROM Table1
WHERE Truc = "Bidule"
GROUP BY Champ2

j'arrive tres bien a ecrire cette requête mais j'arrive pas a ecrire le mode de lectrure ; du genre :
Tant que Non Rq.EOF
      List.AddItem Rq(Champ1).Value & vbTab & Rq(Champ2).Value
      Rq.MoveNext
FinTant que


Je voudrai aussi multiplier les Agregats.
Je me suis aussi renseigne pour la fonction SHAPE mais j'ai pas compris comment gerer l'affichage et multiplier les agregats.
Merci pour votre aide !
A une prochaine
_______________________________________
La vie est trop courte pour la passer a haïre.

2 réponses

Messages postés
34
Date d'inscription
mardi 18 décembre 2007
Statut
Membre
Dernière intervention
12 mai 2009

Voila comment j'ai procédé pour résoudre mon problème d'agregation.  J'ai donc procédé de manière algorithmique.
Seulement je n'ai pas reussi a faire les agregations DISTINCT (la fonction AVG ne fonctionne que si on a choisis le COUNT et le SUM)

    On Error Resume Next
    VMin = rst(ValMin).Value
    On Error Resume Next
    VMax = rst(ValMin).Value
   
    While Not rst.EOF 'Tant qu'on a pas atteind la fin
        i = 0
        While Champs(i) <> ""


            'on ajoute un ligne dans la listbox
            Req = Req & rst(Champs(i)).Value & vbTab
            i = i + 1
        Wend
       
        On Error Resume Next
        If VMin > rst(ValMin).Value Then
            VMin = rst(ValMin).Value
        End If
        On Error Resume Next
        If VMax < rst(ValMax).Value Then
            VMax = rst(ValMax).Value
        End If
        On Error Resume Next
        VSum = VSum + rst(ValSum).Value
        On Error Resume Next
        VCount = VCount + 1
        List3.AddItem Req
       
        rst.MoveNext 'on passe a la ligne suivante
        Req = ""
        lblError.Caption = ""
       
    Wend
   
    On Error Resume Next
    VAvg = VSum / VCount
   
    List3.AddItem " "
    If CheckSum.Value = 1 And TextSum.Text <> "" Then
        List3.AddItem "Total(Sum) " & vbTab & VSum
    End If
    If CheckCou.Value = 1 And TextCou.Text <> "" Then
        List3.AddItem "Compte " & vbTab & VCount
    End If
    If CheckMin.Value = 1 And TextMin.Text <> "" Then
        List3.AddItem "Minimum " & vbTab & VMin
    End If
    If CheckMax.Value = 1 And TextMax.Text <> "" Then
        List3.AddItem "Maximum " & vbTab & VMax
    End If
    If CheckAvg.Value = 1 And TextAvg.Text <> "" Then
        List3.AddItem "Moyenne(AVG) " & vbTab & VAvg
    End If

Demandez moi si vous voulez des précisions (avant que j'en mette)
____________________________________
La vie est trop courte pour la passer a haïre.
Messages postés
34
Date d'inscription
mardi 18 décembre 2007
Statut
Membre
Dernière intervention
12 mai 2009

Bonjour a tous.

Voila ce que j'ai trouvé sur le site officiel de Microsoft a propo de la commande SHAPE :http://support.microsoft.com/kb/189657/fr
c'est plutot bien expliqué mais les exemples sont toute fois pas si claire que ça.
Alors j'aurai aimé que quelqu'un me dise si il a utilisé cette fonction et ce qu'il en a tiré.

Merci et a une prochaine.
____________________________________
La vie est trop courte pour la passer a haïre.