Aide en postgreSQL

Résolu
Bonjour à toutes et à tous, j'espère que vous allez bien
chers amis j'ai besoin de votre aide...j'ai une base de données qui contient les tables suivantes:
CLIENT(NCLI,Nom,[Adresse],[ville])
COMMANDE(NCOM,Client,DateCommande,[DateLivraison])
Client réference NCLI
PRODUIT(NPRO,Libelle,Prix,[Stock],[Poids])
DETAIL(Commande,Produit,Quant)
Commande référence NCOM
Produit référence NPRO

je veux la requête qui me donne les produits commandés par tous les clients de la ville Casablance..

je serais reconnaissant si vous m'aidiez..sinon, merci d'avance...
Configuration: Windows XP
Firefox 3.0.10

6 réponses

  1. Voyons voir si j'ai compris la nuance. Nouvelle version: on considère tous les produits achetés par des clients de Casablanca, mais on ne garde que ceux dont le nombre d'acheteurs DISTINCTS est égal au nombre total de clients de Casablanca (donc les produits qui ont été acheté par tous les clients de cette ville)

    SELECT produit.numero_produit
    FROM produit,commande,client,detail
    WHERE produit.numero=detail.numero_produit
    AND commande.numero_client=client.numero_client
    AND detail.commande=commande.numero_commande
    AND client.ville='casablanca'
    GROUP BY produit.numero_produit
    HAVING count(distinct client.numero_client) =(select count(*) from client where ville='casablanca')
    2
    1. merci à vous Yoan et estofilo
      les requêtes que vous avez proposées doivent resoudre le problème..merci bcp
      et bonne continuation...
      0
      1. Modérateur
        C'est une division relationnelle. Ca se prend de plusieurs manières selon sur quoi on travaille et ça peut être très tordu.
        Voilà quelque-chose qui devrait marcher dans ton cas, le principe est de sélectionner tous les produits commandés par le nombre de personne de Casablanca :
        SELECT npro
        FROM detail, commande
        WHERE produit = npro
        GROUP BY npro
        HAVING count(*)=(SELECT count(*) FROM client WHERE ville='Casablanca')
        0
        1. merci estofilo pour l'aide.mais c'est pas ce que je cherche.

          en fait la requête que je cherche doit me rendre les produits qui sont demandés par tous les clients de la ville casablanca alors que la requête que tu as proposée me donne les prodits demandés par les clients de casablanca.

          j'espère que tu as constaté la différence.
          et merci....
          0
          1. C'est une jointure classique multi-tables

            SELECT produit.nom_du_produit
            FROM produit,commande,client,detail
            WHERE produit.numero=detail.numero_produit
            AND commande.numero_client=client.numero_client
            AND detail.commande=commande.numero_commande
            AND client.ville='la ville que tu cherches'
            0
            1. où êtes vous les amis??
              j'ai vraiment besoin de votre aide.....
              0