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 :

requête statistiques journalière


Sujet :

Langage SQL

  1. #1
    Rédacteur
    Avatar de evarisnea
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Juin 2005
    Messages
    1 957
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 957
    Points : 4 384
    Points
    4 384
    Par défaut requête statistiques journalière


    voilà je suis confronté à un petit problème et je compte sur vous pour m'aider à le résoudre. la ou les requêtes que je souhaite obtenir n'étant pas spécifique à un SGBD en particulier, je poste donc ici.

    j'ai des tables selon la structure suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    ZONE1		PDV(Pt De Vente)	VENTE		DVENTE		PRODUIT
    ===========	=================	=============	=============	==============
    num_zone (PK)	num_pdv (PK)		num_ven (PK)	num_dve (PK)	num_produit (PK)
    nom_zone	num_zone (FK)		num_pdv (FK)	num_ven (FK)	nom_produit
    		nom_pdv			date_vente	num_pro (FK)
    							qté
    							valeur
    j'aurais besoin d'obtenir une requête qui me retournerais le nombre de PDV d'une zone où il y a eu au moins une vente et le nombre total de PDV de cette zone tout cela en fonction des dates de vente, afin de calculer un rapport.
    exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    DATE		|ZONE		|nb PDV vente	|nb PDV zone	|(nbPDVvente/nbPDVzone)*100
    --------------------------------------------------------------------------------------------
    19/05/2007	|zone A		|	5	|	10	|	50
    19/05/2007	|zone B		|	3	|	15	|	20
    19/05/2007	|zone C		|	15	|	20	|	75
    18/05/2007	|zone A		|	8	|	10	|	80
    18/05/2007	|zone B		|	10	|	15	|	66.66
    18/05/2007	|zone C		|	5	|	20	|	25
    des idées des suggestions ?
    merci.

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 109
    Points : 28 437
    Points
    28 437
    Par défaut
    Ta requête doit faire une jointure entre :
    - D'une part, le comptage des points de ventes ayant effectué des ventes, regroupés par date et par zone
    - D'autre part, une table dérivée qui compte le nombre de points de vente par zone

  3. #3
    Rédacteur
    Avatar de evarisnea
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Juin 2005
    Messages
    1 957
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 957
    Points : 4 384
    Points
    4 384
    Par défaut
    Citation Envoyé par al1_24
    Ta requête doit faire une jointure entre :
    - D'une part, le comptage des points de ventes ayant effectué des ventes, regroupés par date et par zone
    - D'autre part, une table dérivée qui compte le nombre de points de vente par zone
    merci de ta réponse al1_24
    dois je comprendre qu'il est impossible d'obtenir ce résultat par une seule requête ?
    je vais essayer de procéder comme tu dis.

  4. #4
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 109
    Points : 28 437
    Points
    28 437
    Par défaut
    Citation Envoyé par evarisnea
    dois je comprendre qu'il est impossible d'obtenir ce résultat par une seule requête ?
    Je ne pense pas avoir écrit celà...
    Une table dérivée est une sous-requête non corrélée qui est utilisée comme une table dans la clause FROM.

  5. #5
    Rédacteur
    Avatar de evarisnea
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Juin 2005
    Messages
    1 957
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 957
    Points : 4 384
    Points
    4 384
    Par défaut
    pourrais tu me donner un exemple ?

  6. #6
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 109
    Points : 28 437
    Points
    28 437
    Par défaut
    Quelque chose comme ça :
    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
    SELECT    vnt.date_vente
        ,    pdv.num_zone
        ,    COUNT(DISTINCT    vnt.num_pdv)    AS nb_pdv_vente
        ,    zon.nb_pdv_zone
        ,    nb_pdv_vente / nb_pdv_zone * 100
    FROM    vente    AS vnt
        INNER JOIN
            pdv        AS pdv
            ON    pdv.num_pdv = vnt.num_pdv
        INNER JOIN
            (    SELECT    num_zone
                    ,    COUNT(*)    AS nb_pdv_zone
                FROM    pdv
                GROUP BY    num_zone
            )    AS zon
            ON    pdv.num_zone = zon.num_zone
    GROUP BY    vnt.date_vente
        ,    pdv.num_zone
        ,    zon.nb_pdv_zone
    ;
    à vérifier, non testé

  7. #7
    Rédacteur
    Avatar de evarisnea
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Juin 2005
    Messages
    1 957
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 957
    Points : 4 384
    Points
    4 384
    Par défaut
    1000 fois merçi al1_24, j'ai pu résoudre le problème grâce à toi, et j'ai appris une nouvelle manière d'écrire mes requêtes! c'est donc ça les tables temporaires ! très interessant.

  8. #8
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 109
    Points : 28 437
    Points
    28 437
    Par défaut
    Citation Envoyé par evarisnea
    c'est donc ça les tables temporaires !
    Pas temporaires... dérivées

  9. #9
    Rédacteur
    Avatar de evarisnea
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Juin 2005
    Messages
    1 957
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 957
    Points : 4 384
    Points
    4 384
    Par défaut
    Citation Envoyé par al1_24
    Pas temporaires... dérivées
    compris

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

Discussions similaires

  1. Amélioration de requête statistique
    Par Nuwanda dans le forum Langage SQL
    Réponses: 3
    Dernier message: 02/04/2008, 17h59
  2. Créer une requête statistiques
    Par MARCO63 dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 28/01/2008, 22h47
  3. [SQL] requête statistique
    Par gandf dans le forum Langage SQL
    Réponses: 4
    Dernier message: 09/05/2007, 20h42
  4. [Débutant] Requête statistique simple
    Par drthodt dans le forum Requêtes et SQL.
    Réponses: 8
    Dernier message: 14/10/2005, 09h50
  5. Requête statistique.
    Par abdelghani_k dans le forum Langage SQL
    Réponses: 1
    Dernier message: 02/08/2005, 19h39

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