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. où êtes vous les amis??
      j'ai vraiment besoin de votre aide.....
      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. 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. 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 à vous Yoan et estofilo
              les requêtes que vous avez proposées doivent resoudre le problème..merci bcp
              et bonne continuation...
              0