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 0 ou 1


Sujet :

SQL Firebird

  1. #1
    Membre éprouvé
    Homme Profil pro
    Benevole
    Inscrit en
    Mai 2004
    Messages
    1 674
    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 674
    Points : 925
    Points
    925
    Par défaut Probléme de requete avec 0 ou 1
    Bonjour a tous

    j'ai 2 tables

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

    et voici la nouvelle requete qui m'a été démandée !

    si par exemple on prend un echantillon de 100 boutiques par Ville,
    là ou le produit existe, on marque 1
    là ou le produit est absent, on marque 0
    donc le taux de presence du produit sera:
    le nombre de 1 divisé par les 100 boutiques.
    je sais qu'avec le Case When c'est possible de la faire , mais je sèche !
    j'ai aussi pensé a une PS mais je ne vois pas comment demarré

    Merci de m'éclairer

  2. #2
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 021
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 021
    Points : 40 935
    Points
    40 935
    Billets dans le blog
    62
    Par défaut
    Quel est la version de Firebird ? Tu peux peut être utiliser une CTE en lieu et place de la procédure .

    Il me semble que tu as déjà des requêtes faites pour savoir si le produit existe ou non dans une ville . Peux tu les ré-induqer ?
    (Toutes mes excuses , je reviens d'un voyage d'affaire très long et c'est le matin donc j'ai la flemme de rechercher)
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  3. #3
    Membre éprouvé
    Homme Profil pro
    Benevole
    Inscrit en
    Mai 2004
    Messages
    1 674
    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 674
    Points : 925
    Points
    925
    Par défaut
    Quel est la version de Firebird ?
    j'utilise Firebird 2.1
    Tu peux peut être utiliser une CTE en lieu et place de la procédure .
    c'est un truc que je n'ai jamais utilisé, je serai vraiment heureux d'apprendre

    Il me semble que tu as déjà des requêtes faites pour savoir si le produit existe ou non dans une ville . Peux tu les ré-induqer ?
    effectivement (ce code m'a été gracieusement offert par Barbibulle ) dans un atre poste, reste maintenant a le modifier, mais je seche
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Code :
    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.nomproduitLe 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.

  4. #4
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 021
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 021
    Points : 40 935
    Points
    40 935
    Billets dans le blog
    62
    Par défaut
    Essayes quelque chose de ce genre

    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
     
    // les  CTEs 
    WITH 
    // ceci est la première qui récupére le nombre de magasins ayant le produit ?
    CALCULPRODUIT AS (SELECT m.villemagazin, p.nomproduit, 
                                     count(p.idproduit) AS QTE
                                     FROM magazin m
                                     INNER JOIN Produit p ON (p.numeromagazin = m.idmagazin)  
                                    GROUP BY  m.villemagazin, p.nomproduit ),
    // la deuxiéme récupére le nombre de magasins
    NOMBREMAGVILLE AS (SELECT COUNT(idmagazin) AS NBMAG,villemagazin from
                                        MAGAZIN GROUP BY villemagazin) 
     
    // ceci est la sélection sur la CTE
    SELECT  c.villemagazin,c.nomproduit,
     CASE WHEN  (QTE>0)
       THEN  c.QTE*100/n.nbmag                         
       ELSE   0.00
    FROM CALCULPRODUIT C JOIN NOMBREMAGVILLE N ON c.Villemagazin=n.villemagazin
    sans garanties , mais l'idée est là
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  5. #5
    Membre éprouvé
    Homme Profil pro
    Benevole
    Inscrit en
    Mai 2004
    Messages
    1 674
    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 674
    Points : 925
    Points
    925
    Par défaut
    la vraiment c'est trop fort, je vais donc tester tous ça , entre temps pour nr pas abuser de votre temps es qu'il et possible de mettre tout ça dans dans une PS ? ou il faut seulement l'exécuter en tant que requête ?
    Merci pour l'exemple sur les CTE

  6. #6
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 021
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 021
    Points : 40 935
    Points
    40 935
    Billets dans le blog
    62
    Par défaut
    l'ensemble simplement en requête c'est ça la partie
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

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

Discussions similaires

  1. Problème de requete avec like
    Par eric062 dans le forum ASP.NET
    Réponses: 8
    Dernier message: 21/10/2008, 18h18
  2. Problème de requete avec SUM
    Par fatiinfo dans le forum Hibernate
    Réponses: 2
    Dernier message: 27/08/2008, 17h18
  3. [Hibernate]Problème de requete avec "join fetch"
    Par gauloiskiki dans le forum Hibernate
    Réponses: 4
    Dernier message: 21/06/2006, 10h54
  4. Problème de requete avec type monétaire
    Par Pymm dans le forum ASP
    Réponses: 11
    Dernier message: 09/09/2005, 17h57
  5. Problème de requete avec Innodb
    Par silef dans le forum Requêtes
    Réponses: 3
    Dernier message: 14/04/2004, 13h54

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