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 Oracle Discussion :

Requête catégorie de produit


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Homme Profil pro
    consultant informatique
    Inscrit en
    Août 2018
    Messages
    172
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : consultant informatique

    Informations forums :
    Inscription : Août 2018
    Messages : 172
    Par défaut Requête catégorie de produit
    Cette fois,je dois modifier la requête pour lister tous les produits (product) et leur
    catégorie associée(product_category) s'ils en ont une.
    Dans le cas contraire,ne pas afficher de valeur (null)
    pour la categorie.
    N'afficher que les colonnes PRODUCT_NAME et CATEGORY_NAME dans cet ordre

    et j'ai fait le code suivant en utilisant le "having" pour les agrégats

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    select product.name AS PRODUCT_NAME,product_category.name AS CATEGORY_NAME
    from product
    group by product_category
    where product_category is not null
    having product_category not null
    Je ne suis pas sur de mon utilisation du having,je veux en effet écrire la condition:
    ...lister leur catégorie associée (product_categorie) s'ils en ont une et dans le cas
    contraire (s'ils en ont pas de categorie associée) , ne pas afficher de valeur (null)
    pour la catégorie.

    J'ai essayé avec le having mais je crois que ça ne marche pas.
    Qu'est ce que vous en pensez?

  2. #2
    Expert confirmé
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 440
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 440
    Par défaut
    Bonjour,
    Cette requête ne peut pas fonctionner.
    Tu utilises les tables product et product_category dans la clause SELECT, mais seule la première se trouve dans la clause FROM.
    Il te manque donc une jointure, comme indiqué dans ton autre discussion.
    Ensuite le GROUP BY se fait sur une(des) colonne(s), pas sur une table. Idem dans la clause HAVING, sauf qu'ici on utilise une(des) colonne(s) du résultat.

    Enfin tu dis que si un produit ne possède pas de catégorie, il ne faut pas afficher de null. Mais dans ce cas que faut-il afficher ?

    Tatayo.

  3. #3
    Membre très actif
    Homme Profil pro
    consultant informatique
    Inscrit en
    Août 2018
    Messages
    172
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : consultant informatique

    Informations forums :
    Inscription : Août 2018
    Messages : 172
    Par défaut re
    ok j'ai refait le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    select product.name as PRODUCT_NAME,product_category.name as CATEGORY_NAME
    from product as prd
    join product_category as pca on pca.product_category_id=prd.product_category_id
    group by pca.name
    having pca.name is not null;
    j'ai exprimé la condition "catégorie associée(product_category) s'il en ont une "
    en utilisant having,est ce que je dois plutot utiliser where?
    ensuite la condition:"dans le cas contraire ,ne pas afficher de valeur(null) pour la catégorie"
    est écrite comme ça dans l'énoncé,je ne comprends pas trop où ils veulent en venir et aussi je ne
    sais pas comment la traduire en SQL?

  4. #4
    Expert confirmé
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 440
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 440
    Par défaut
    Citation Envoyé par master MI Voir le message
    ...est écrite comme ça dans l'énoncé, je ne comprends pas trop où ils veulent en venir et aussi je ne
    sais pas comment la traduire en SQL?
    Donc il s'agit d'un exercice ? Dans ce cas il faut demander à ton formateur plus d'infos sur ce qu'il faut afficher à la place de NULL. Une chaine vide ? Une chaine particulière (N/A par exemple) ?
    En dehors de ce point à éclaircir, tu peux jeter un oeil à divers tutoriels disponibles, par exemple ici, ce qui te permettra de corriger les erreurs de syntaxe dans ta requête.

    Quoi qu'il en soit vu que c'est un exercice, tu auras des pistes mais pas de réponses "toute faite".

    Tatayo.

Discussions similaires

  1. Modifier requête catégorie de produit
    Par master MI dans le forum SQL
    Réponses: 9
    Dernier message: 08/10/2020, 20h01
  2. [Magento] Listing en grille des catégories de produits
    Par bebedemon dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 0
    Dernier message: 22/11/2011, 20h48
  3. Réponses: 2
    Dernier message: 12/12/2010, 18h58
  4. [MCD] Multiples catégories de produits
    Par BLJ.CHAUVIN dans le forum Schéma
    Réponses: 3
    Dernier message: 04/12/2009, 03h42
  5. Relation catégorie et produit
    Par LhIaScZkTer dans le forum Décisions SGBD
    Réponses: 1
    Dernier message: 26/01/2009, 12h48

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