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

SQL Firebird Discussion :

Probléme de requete avec calcul de taux


Sujet :

SQL Firebird

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Homme Profil pro
    Benevole
    Inscrit en
    Mai 2004
    Messages
    1 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Benevole
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 721
    Par défaut Probléme de requete avec calcul de taux
    Bonjour a tous

    je reviens encore le meme problème sous une autre forme

    j'ai 2 tables

    MAGAZIN(idmagazin, typemagazin, quartiermagazin, villemagazin)
    PRODUIT(idproduit, nomproduit, typroduit, Numeromagazin)

    la relation entre magazin et produit est de type 1;n (idmagazin, Numeromagazin)

    typemagazin peut prendre soit 'grossite' soit 'detaillant'
    typroduit peut prendre soit 'concurent' soit 'personnel'
    Mon premier problème était de rechercher :

    Taux de présence par ville pour les produit type 'personnel'.

    Ce probléme avait été resolu dans une autre discussion et j'avais eu pour reponse (de Barbibulle ) :

    SELECT m.villemagazin, count(DISTINCT p.numeromagazin) nbr_magasin_avec_produit_perso, count(DISTINCT m.idmagazin) nbr_total_magasin_meme_ceux_sans_produits
    FROM magazinm
    LEFT JOIN Produit p ON (p.numeromagazin = m.idmagazin) AND (p.typroduit ='Personel')
    GROUP BY m.villemagazin
    Le premier count compte le nombre de magasin ayant des produits de type 'personel' et le second count compte le nombre total de magasin (même ceux qui n'ont pas de produits).
    Maintenant je veux avoir
    1 le taux de présence pour tous les produits par ville
    2 le taux de présence par produits par ville

    voici ce que j'ai trouver pour la requete 1 en m'appuyant sur la reponse de Barbibulle es correcte ? car j'obtient les meme chiffres pour les deux count :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT m.villemagazin, p.nomproduit, 
    count(DISTINCT p.numeromagazin) nbr_magasin_avec_produit_perso, 
    count(DISTINCT m.idmagazin) nbr_total_magasin_meme_ceux_sans_produits
    FROM magazinm
    LEFT JOIN Produit p ON (p.numeromagazin = m.idmagazin) GROUP BY
     m.villemagazin, p.nomproduit
    j'ai encore besion d'aide
    Merci a tous

  2. #2
    Membre Expert
    Avatar de Barbibulle
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    2 052
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 2 052
    Par défaut
    1 le taux de présence pour tous les produits par ville

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    SELECT m.villemagazin,  
    sum(case when (p.typroduit ='Personel') then 1 else 0 end) nbr_produit_perso,
    count(DISTINCT p.idproduit) nbr_total_produit 
    FROM magazinm
    INNER JOIN Produit p ON (p.numeromagazin = m.idmagazin)  
    GROUP BY
     m.villemagazin
    Le sum compte le nombre de produit personnel par ville alors que le count compte le nombre de produit par ville.

    2 le taux de présence par produits par ville

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    SELECT m.villemagazin, p.nomproduit, 
    sum(case when (p.typroduit ='Personel') then 1 else 0 end) nbr_produit_perso,
    count(DISTINCT p.idproduit) nbr_total_produit 
    FROM magazinm
    INNER JOIN Produit p ON (p.numeromagazin = m.idmagazin)  
    GROUP BY
     m.villemagazin, p.nomproduit
    Le sum compte le nombre de produit personnel par nom de produit dans la ville alors que le count compte tous les produits par nom de produit de la ville.

  3. #3
    Membre éprouvé
    Homme Profil pro
    Benevole
    Inscrit en
    Mai 2004
    Messages
    1 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Benevole
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 721
    Par défaut
    Merci, je cours tester tout ça

  4. #4
    Membre éprouvé
    Homme Profil pro
    Benevole
    Inscrit en
    Mai 2004
    Messages
    1 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Benevole
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 721
    Par défaut
    Bonjour à tous

    je m'excuse pour le rétard que prend ma reponse, en faite je n'ai pas de connection le week end.
    Mr Barbibulle, en faite j'ai un problème avec la dernière requête :

    2 le taux de présence par produits par ville
    SELECT m.villemagazin, p.nomproduit,
    sum(case when (p.typroduit ='Personel') then 1 else 0 end) nbr_produit_perso,
    count(DISTINCT p.idproduit) nbr_total_produit
    FROM magazinm
    INNER JOIN Produit p ON (p.numeromagazin = m.idmagazin)
    GROUP BY m.villemagazin, p.nomproduit
    Le sum compte le nombre de produit personnel par nom de produit dans la ville alors que le count compte tous les produits par nom de produit de la ville.
    en effet ce que moi j'attend par le taux de présence par produits par ville c'est en fait le nombre de magazin qui vendent ce produit sur le nombre total de produit,
    voici un peu ce que je voulais dans le fichier joint que je vous apporte et Merci encore pour votre aide !
    Fichiers attachés Fichiers attachés

  5. #5
    Membre éprouvé
    Homme Profil pro
    Benevole
    Inscrit en
    Mai 2004
    Messages
    1 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Benevole
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 721
    Par défaut
    ou bien es que je peut dire que
    Le sum compte le nombre de produit personnel par nom de produit dans la ville
    represente le nombre de magazin ou le produit est vendu !
    j'avoue que je suis completement debousolé

  6. #6
    Membre éprouvé
    Homme Profil pro
    Benevole
    Inscrit en
    Mai 2004
    Messages
    1 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Benevole
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 721
    Par défaut
    En faite en fouillant les reponses postées, cette requête peut m'aider si j'arrive a introduire le nom des produits par ville dans cette requete je suppose !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT m.villemagazin, count(DISTINCT p.numeromagazin) nbr_magasin_avec_produit_perso, count(DISTINCT m.idmagazin) nbr_total_magasin_meme_ceux_sans_produits
    FROM magazinm
    LEFT JOIN Produit p ON (p.numeromagazin = m.idmagazin) AND (p.typroduit ='Personel')
    GROUP BY m.villemagazin
    .
    comment le faire ?

  7. #7
    Membre éprouvé
    Homme Profil pro
    Benevole
    Inscrit en
    Mai 2004
    Messages
    1 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Benevole
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 721
    Par défaut
    bonsoir a tous
    excuser d'avoir encore reouvert ce post qui était marqué comme resolu, car dans le joie d'avoir été aidé je n'avait pas bien remarqué certains détails. en

    1/ effet lors de l'exécution de cette requete :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    SELECT m.villemagazin, p2.nomproduit,
    count(DISTINCT p.numeromagazin) nbr_magasin_avec_produit_perso,
    s.nbmag AS NB_mag_total, count(DISTINCT p2.numeromagazin) nbr_magasin_ayant_au_moins_un_de_ce_produit,
    cast (cast (count(DISTINCT p.numeromagazin) AS float) *100/ CAST (s.nbmag AS float) AS double precision) AS taux
    FROM magazin m
    LEFT JOIN produit p ON (p.numeromagazin = m.idmagazin) AND (p.typeproduit ='PERSONEL')
    INNER JOIN produit p2 ON (p2.numeromagazin = m.idmagazin)
    INNER JOIN (
    SELECT m2.villemagazin AS ville, count(DISTINCT m2.idmagazin) AS nbmag
    FROM magazin m2 GROUP BY m2.villemagazin) S ON s.ville=m.villemagazin
    GROUP BY m.villemagazin , p2.nomproduit, s.nbmag
    je vois aussi apparaitre les produits qui ne sont pas de type personel or il ya bien cette restriction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    LEFT JOIN produit p ON (p.numeromagazin = m.idmagazin) AND (p.typeproduit ='PERSONEL')
    qui devait pouvoir le faire

    2/
    j'avais voulu aussi ajouter une autre restriction pour ne prendre que les magazin de type 'GROSISTE', du coup je suis bloqué.

    Merci d'avance pour votre aide

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

Discussions similaires

  1. problème de requete de calcul de taux
    Par devalender dans le forum Langage SQL
    Réponses: 3
    Dernier message: 11/06/2009, 19h15
  2. Problème de requete avec SUM
    Par fatiinfo dans le forum Hibernate
    Réponses: 2
    Dernier message: 27/08/2008, 16h18
  3. [Hibernate]Problème de requete avec "join fetch"
    Par gauloiskiki dans le forum Hibernate
    Réponses: 4
    Dernier message: 21/06/2006, 09h54
  4. Problème de requete avec type monétaire
    Par Pymm dans le forum ASP
    Réponses: 11
    Dernier message: 09/09/2005, 16h57
  5. Problème de requete avec Innodb
    Par silef dans le forum Requêtes
    Réponses: 3
    Dernier message: 14/04/2004, 12h54

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