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 :

requete pour etablir un bilan annuel


Sujet :

Requêtes et SQL.

  1. #1
    Débutant Avatar de VIRGINIE87
    Femme Profil pro
    Sans Emploi
    Inscrit en
    Avril 2006
    Messages
    286
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : Sans Emploi

    Informations forums :
    Inscription : Avril 2006
    Messages : 286
    Points : 72
    Points
    72
    Par défaut requete pour etablir un bilan annuel
    bjr,
    voici la structure de ma table TTriage :
    N°Triage ---> clé primaire
    N°Date ---> numérique : date du triage
    N°Article ---> numérique : article trié
    N°Forme ---> numérique : forme de l'article
    QteChoixA ---> numérique : quantité d'article en choix A
    QteChoixD ---> numérique : quantité d'article en choix D
    Qte2eme ---> numérique : quantité d'article en 2eme choix
    QteRetouche ---> numérique : quantité d'article en retouche
    QteRebut ---> numérique : quantité d'article en rebut
    QteCasse ---> numérique : quantité d'article en casse

    N°Date ---> TDateTriage : 2 champs N°Date, DateTriage ( sous la forme JANVIER 2005 ... AVRIL 2007 )(JANVIER 2005 ---> 1 ... AVRIL 2007--->28)
    N°Article ---> TArticle : 2 champs N°Article, DesignationArticle
    N°Forme ---> TForme: 2 champs N°Forme, DesignationForme

    je voulais savoir comment etablir la requete me permettant de connaitre les quantité triés dans les différents choix pour les années 2005, 2006 et 2007

  2. #2
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Points : 4 297
    Points
    4 297
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    select year(ndate)  as an,sum(maquté) as totalqté
    fom matable
    group by year(ndate);

  3. #3
    Débutant Avatar de VIRGINIE87
    Femme Profil pro
    Sans Emploi
    Inscrit en
    Avril 2006
    Messages
    286
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : Sans Emploi

    Informations forums :
    Inscription : Avril 2006
    Messages : 286
    Points : 72
    Points
    72
    Par défaut
    je voudrais juste savoir à quoi correspond ndate et maquté

  4. #4
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Points : 4 297
    Points
    4 297
    Par défaut
    à
    N°Date QteChoixA

  5. #5
    Débutant Avatar de VIRGINIE87
    Femme Profil pro
    Sans Emploi
    Inscrit en
    Avril 2006
    Messages
    286
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : Sans Emploi

    Informations forums :
    Inscription : Avril 2006
    Messages : 286
    Points : 72
    Points
    72
    Par défaut
    j'ai réalisé un premier essai avec cette requete
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT year(1) AS an, sum(QteChoixA) AS totalqté
    FROM TTriage
    GROUP BY year(1);
    mais j'obtient le champs an égale à 1899 cela me parait tres curieux

  6. #6
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Points : 4 297
    Points
    4 297
    Par défaut
    oh oh pardon
    janvier 2005 n'est pas une date
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT right(JANVIER 2005,4) AS an, sum(QteChoixA) AS totalqté
    FROM TTriage
    GROUP BY right(JANVIER 2005,4);

  7. #7
    Débutant Avatar de VIRGINIE87
    Femme Profil pro
    Sans Emploi
    Inscrit en
    Avril 2006
    Messages
    286
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : Sans Emploi

    Informations forums :
    Inscription : Avril 2006
    Messages : 286
    Points : 72
    Points
    72
    Par défaut
    cette fonction correspond mieux en effet
    lorsque j'applique la requete j'ai le message suivant :
    Erreur de syntaxe(opérateur absent) dans l'expression 'RIGHT(JANVIER 2005,4)'

  8. #8
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Points : 4 297
    Points
    4 297
    Par défaut
    right("janvier 2005",4)

  9. #9
    Débutant Avatar de VIRGINIE87
    Femme Profil pro
    Sans Emploi
    Inscrit en
    Avril 2006
    Messages
    286
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : Sans Emploi

    Informations forums :
    Inscription : Avril 2006
    Messages : 286
    Points : 72
    Points
    72
    Par défaut
    Donc nous avons fait la manip pour janvier 2005
    maintenant il faut additionner les 11 autres mois de l'anné 2005
    pardon c'est une grosse erreur de ma part
    et comment dois integrer 2006 et 2007

  10. #10
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Points : 4 297
    Points
    4 297
    Par défaut
    right([n°date],4)

  11. #11
    Débutant Avatar de VIRGINIE87
    Femme Profil pro
    Sans Emploi
    Inscrit en
    Avril 2006
    Messages
    286
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : Sans Emploi

    Informations forums :
    Inscription : Avril 2006
    Messages : 286
    Points : 72
    Points
    72
    Par défaut
    Voila ce que j'obtient :
    Année Total_ChoixA
    1 40004
    10 46838
    11 31134
    12 41615
    13 33487
    14 31727
    15 44657
    16 25114
    17 9550
    18 26093
    19 31525
    2 43066
    21 43454
    22 41290
    23 40667
    24 27321
    25 19563
    26 25491
    27 38057
    28 23635
    3 25041
    4 35461
    5 27569
    6 37754
    7 35817
    9 38796

    Voila ce que je souhaite obtenir :
    Année Total_ChoixA
    2005 403185
    2006 354885
    2007 106746



    Voici la correspondance entre N°Date et année
    2005 : 1-->12
    2006 : 13-->24
    2007 : 25-->28

  12. #12
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Points : 4 297
    Points
    4 297
    Par défaut
    merci de la précision
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT int(date/12)+2005 AS an, sum(QteChoixA) AS totalqté
    FROM TTriage
    GROUP BY int(date/12)+2005 ;

  13. #13
    Débutant Avatar de VIRGINIE87
    Femme Profil pro
    Sans Emploi
    Inscrit en
    Avril 2006
    Messages
    286
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : Sans Emploi

    Informations forums :
    Inscription : Avril 2006
    Messages : 286
    Points : 72
    Points
    72
    Par défaut
    J'obtient le resultat souhaité
    mais peut tu m'expliquer le :

  14. #14
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Points : 4 297
    Points
    4 297
    Par défaut
    hum hum
    je corrige
    int((n°date-.001)/12)

    si je divise n°date par 12
    j'obtiens 1/8 puis 2/8 et pour 12 1
    la partie entière de ceci sera 0 la première année puis 1 la seconde
    +2005 base de ton calcul

  15. #15
    Débutant Avatar de VIRGINIE87
    Femme Profil pro
    Sans Emploi
    Inscrit en
    Avril 2006
    Messages
    286
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : Sans Emploi

    Informations forums :
    Inscription : Avril 2006
    Messages : 286
    Points : 72
    Points
    72
    Par défaut
    avec la modif J'obtient :
    Année Total_ChoixA
    0 403185
    1 354885
    2 106746

    le solution précedente me convenait tres bien


    voici comment j'ai amélioré ma requete SQL :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT int(date/12)+2005 AS Année, Sum([QteChoixA]+[QteChoixD]+[Qte2eme]+[QteRetouche]+[QteRebut]+[QteCasse]) AS QteTriee, sum(QteChoixA) AS Total_ChoixA, sum(QteChoixD) AS Total_ChoixD, Sum([QteChoixA]+[QteChoixD]) AS QteDecorable, (QteDecorable/(QteTriee))*100 AS PourcentageDecorable, sum(Qte2eme) AS Total_2eme_Choix, sum(QteRetouche) AS Total_Retouche, sum(QteRebut) AS Total_Rebut, sum(QteCasse) AS Total_Casse
    FROM TTriage
    GROUP BY int(date/12)+2005;

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

Discussions similaires

  1. Etablir un bilan annuel
    Par VIRGINIE87 dans le forum Modélisation
    Réponses: 1
    Dernier message: 16/05/2007, 18h37
  2. Requete pour un top 3!
    Par faayy dans le forum Access
    Réponses: 6
    Dernier message: 20/06/2005, 09h06
  3. Requete pour un débutant
    Par sqlnoob dans le forum Langage SQL
    Réponses: 3
    Dernier message: 20/05/2005, 08h55
  4. requete pour reccuperer une parti d'un resultat
    Par ViBy dans le forum Langage SQL
    Réponses: 6
    Dernier message: 03/09/2004, 09h33
  5. requete pour avoir CONTENU procedures stockees
    Par bmayer dans le forum MS SQL Server
    Réponses: 11
    Dernier message: 11/02/2004, 13h20

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