Requete access

lailaz Messages postés 37 Statut Membre -  
 Paf -
Bonjour,

j'espere etre assez claire se probleme me torture depuis une semaine et j'espere votre aide
alors voici le probleme
j'ai cree une table absence: colonne 1: ecole :texte
colonne2 :nombredejour : numerique
colonne3 :mois :numerique
(pour des raison j'ai pas pu metre date/heure)

voici un exemple de ma table

colonne1:ecole
ecole1
ecole1
ecole1
ecole2

<gras>colonne 2 :nombredejour

1
2
4
12

colonne3:mois
9
10
11
9
(je n'ai pas pu cree une table ces colonne sont lier)
alors ce que j'essai de faire est une requete ou je peut choisir par exemple 2mois et faire la somme des nombredejour
par exemple je veut l'absence de mois 9 et 10
le resultat doit etre
ecole1 3(1+2)

ou mois 9 et 10 et 11
ecole1 7(1+2+4)

et ainsi de suite pour tous les mois et toutes les ecoles c'est un rapport que je dois remettre chaque fois demander
j'espere etre tres claire et c'est vraiment urgent merci

4 réponses

  1. Paf
     
    bonjour,

    Pas trop saisi pour la table:
    j'ai cree une table absence
    (je n'ai pas pu cree une table ces colonne sont lier) 


    S'il existe une table absence:

    SELECT ecole, sum(nombredejour)
    FROM absence
    WHERE mois between 9 and 11
    GROUP BY ecole;

    Bonne journée
    0
  2. lailaz Messages postés 37 Statut Membre 1
     
    salut Paf

    j'ai deja essayé ''between'' mais il ne me donne rien
    le resutat resemble a ceci:

    ecole1 1 9
    ecole1 2 10
    ecole1 4 11

    je ne sais pas pourquoi il ne realise pas la somme !!
    0
    1. Paf
       
      Bonjour
      j'ai testé la requête sur acces 2003, la même table les mêmes champs et ça marche!

      Montre la requête que tu utilises!

      Bonne journée
      0
  3. lailaz Messages postés 37 Statut Membre 1
     
    je travail sur 2007, voila ma requete:

    SELECT Etablissement.ecole, Sum(joursabsence.absence) AS Sommeabsence, joursabsence.mois

    FROM Etablissement INNER JOIN joursabsence ON Etablissement.ecole = joursabsence.ecole

    GROUP BY Etablissement.ecole, joursabsence.mois

    HAVING (((joursabsence.mois) Between 9 And 11));

    j'ai utilisé deux table une pour les nom d'ecoles et l'autre pour l'absence.

    merci infiniment j'espere que vous parviendrai a me resoudre se probleme
    bonne journée.
    0
    1. Paf
       
      On n'est plus dans le problème du départ !!
      D'une table on passe à deux!

      Quelle est la structure de ces tables? sinon on ne peut rien faire

      A+
      0
  4. lailaz Messages postés 37 Statut Membre 1
     
    pardon j'ai cru simplifier le probleme
    alors voila :

    table etablissement : nometab
    table absence : joursabsence, mois, nometab

    jointure : nometab

    voila exactement mon app access

    alors la requete ''between'' que je fais est presenté ainsi:

    SELECT Etablissement.NomEtabA, Sum(absence.joursabscence) AS SommeDejoursabscence, absence.mois

    FROM Etablissement INNER JOIN absence ON Etablissement.NomEtabA = absence.nometab

    GROUP BY Etablissement.NomEtabA, absence.mois

    HAVING (((absence.mois) Between 9 And 11));

    mais ça me donne pas le resultat voulu
    0
    1. Paf
       
      Re

      SELECT nometab , sum(joursabsence)
      FROM absence
      WHERE mois between 9 and 11
      GROUP BY nometab ;

      C'est la même requête que précedemment aux noms de champ près.

      Finalement la table "etablissement" n'apporte rien. Tous les éléments utiles se trouvent dans la table "absence"
      Faire la jointure sur "etablissement" présenterait un intérêt si on y trouvait des informations à faire afficher, mais là ce n'est pas le cas.

      A+
      0
    2. lailaz Messages postés 37 Statut Membre 1
       
      ok la requete est correct
      mais elle ne fonctionne pas pour moi
      il me donne l'absence de chaque mois et pas la somme
      il commence a me cassé la téte
      je sais que je demande trop mais ya t-il autre chose que je puisse faire a part "entre ...et...."
      0
    3. Paf
       
      Re

      SELECT Etablissement.NomEtabA, Sum(absence.joursabscence) AS SommeDejoursabscence, absence.mois

      Le fait d'ajouter absence.mois provoque l'affichage de tous les mois pour chaque établissement, et ne peut pas afficher la somme pour les mois du between !
      as tu essayé sans ?
      0
    4. lailaz Messages postés 37 Statut Membre 1
       
      j'ai essayé malheureusement je n'ai pas reussi il continué a afficher la meme etablissement pour chaque mois, c'est comme si la fonction "somme" ne fonctionne pas de tout
      il n'y a aucun autre moyen en vba par exemple
      0
    5. lailaz Messages postés 37 Statut Membre 1
       
      croix tu que le probleme est causé par le fait que le champ mois et de type numerique et non pas date/heure ?
      quand j'essai de le rendre date/heure il ne me permet pas d'affiché uniquement le mois par exemple quand j'ecris 9 il la transforme ainsi 08/01/1990
      0