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


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
    Bonjour a tous
    j'ai un problème de comprehension avec certaine, mais voici je vous donne d'abord la strucutre de mes tables.
    je suis sous FIB 2.1.2

    j'ai 2 tables

    MAGAZIN(idmagazin, typemagazin, quartiermagazin, villemagazin)
    PRODUIT(idproduit, 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'


    mes requetes a problème sont les suivantes:

    1. Nombre de grossistes vendant les type 'personnel' par produits
      Nombre de grossistes vendants les produits de type 'personnel'
      Taux de présence par ville pour les produit type 'personnel'.


    je vous assure que je suis vraiment coincé, j'ai besion d'aide

    Merci a tous

  2. #2
    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
    je viens d'essayer ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT  magazin.idmagazin, COUNT(magazin.idmagazin)
    FROM   magazin
    INNER JOIN Produit ON (magazin.idmagazin= produit.numeromagazin)
    WHERE  (produit.typroduit = 'personel') AND magazin.tpmagazin='GROSSISTE'
    GROUP BY magazin.idmagazin
    et cette requete me donne tous les magazins qui vendent les produits de type personel.

  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
    concernant le taux de préssence je pense qu'il s'agit d'un truc statistique si je ne trompe ?
    j'ai vraiment besoin d'aide please

  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
    en ajoutant ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    SELECT COUNT(*)
    from(
    SELECT  magazin.idmagazin
    FROM   magazin
    INNER JOIN Produit ON (magazin.idmagazin= produit.numeromagazin)
    WHERE  (produit.typroduit = 'personel') AND magazin.tpmagazin='GROSSISTE'
    GROUP BY magazin.idmagazin)
    j'obtient je suppose le nombre de magazin qui vendent des produits de type 'personel'. a confrimer
    reste pour le taux de présence là variement je ne sais meme pas ou commencer

  5. #5
    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
    Citation Envoyé par devalender Voir le message
    je viens d'essayer ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT  magazin.idmagazin, COUNT(magazin.idmagazin)
    FROM   magazin
    INNER JOIN Produit ON (magazin.idmagazin= produit.numeromagazin)
    WHERE  (produit.typroduit = 'personel') AND magazin.tpmagazin='GROSSISTE'
    GROUP BY magazin.idmagazin
    et cette requete me donne tous les magazins qui vendent les produits de type personel.
    Donne le nombre de produit 'personel' par grossiste.

    Alors que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT  produit.idproduit, COUNT(distinct magazin.idmagazin)
    FROM   magazin
    INNER JOIN Produit ON (magazin.idmagazin= produit.numeromagazin)
    WHERE  (produit.typroduit = 'personel') AND magazin.tpmagazin='GROSSISTE'
    GROUP BY produit.idproduit
    donne le nombre de grossiste par produit de type 'personel'.

    Pour connaitre le nombre de grossiste vendant des produits de type personnel :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT  COUNT(distinct magazin.idmagazin)
    FROM   magazin
    INNER JOIN Produit ON (magazin.idmagazin= produit.numeromagazin)
    WHERE  (produit.typroduit = 'personel') AND magazin.tpmagazin='GROSSISTE'
    Apres pour le taux de présence dans une ville j'imagine que c'est le rapport entre le nombre de produit de type personnel par rapports aux nombre total de produit pour chaque ville ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT  magazin.villemagazin, sum(case when produit.type ='personel' then 1 else 0 end) as nbr_produit_perso, (sum(case when produit.type ='personel' then 1 else 0 end)) / count(produit.idproduit) as taux_presence
    FROM   magazin
    INNER JOIN Produit ON (magazin.idmagazin= produit.numeromagazin)
    GROUP BY magazin.villemagazin

  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
    Merci beaucoup Barbibulle
    j'essai tout ca et je vous met au courant
    merci

  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
    pour le taux de prensence

    Le taux de présence par produit se definit comme étant le nombre de magazin vendant les produits 'personnel' diviser par le nombre total de magazin maintenant je ne sais pas si c'est conforme a votre reponse.
    merci

  8. #8
    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
    Pour reponse
    Pour connaitre le nombre de grossiste vendant des produits de type personnel :

    Code :
    SELECT COUNT(DISTINCT magazin.idmagazin)
    FROM magazin
    INNER JOIN Produit ON (magazin.idmagazin= produit.numeromagazin)
    WHERE (produit.typroduit = 'personel') AND magazin.tpmagazin='GROSSISTE'
    cette requete marche correctement

    SELECT magazin.villemagazin, sum(case when produit.type ='personel' then 1 else 0 end) AS nbr_produit_perso, (sum(case when produit.type ='personel' then 1 else 0 end)) / count(produit.idproduit) AS taux_presence
    FROM magazin
    INNER JOIN Produit ON (magazin.idmagazin= produit.numeromagazin)
    GROUP BY magazin.villemagazin
    celle-ci marche mais ne repond pas a mon attente
    Le taux de présence par produit se definit comme étant le nombre de magazin vendant les produits 'personnel' diviser par le nombre total de magazin
    je ne suis pas encore sortir de la fournaise !

  9. #9
    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
    Dans ce cas c'est plutot un truc du genre :
    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
    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).

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

Discussions similaires

  1. [EJBQL] Problème de requete
    Par rivierem dans le forum Java EE
    Réponses: 3
    Dernier message: 16/10/2004, 10h05
  2. Problème sous requete MySQL
    Par gavelin dans le forum Langage SQL
    Réponses: 3
    Dernier message: 20/07/2004, 10h36
  3. Problème de Requete...
    Par sebiv dans le forum Langage SQL
    Réponses: 6
    Dernier message: 29/04/2004, 16h21
  4. Problème de requete avec Innodb
    Par silef dans le forum Requêtes
    Réponses: 3
    Dernier message: 14/04/2004, 12h54
  5. Problème de requete multis-selections
    Par tripper.dim dans le forum SQL
    Réponses: 9
    Dernier message: 03/09/2003, 13h08

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