4 Replies Latest reply: Dec 19, 2014 4:39 AM by Ulrich COUEGNOUX RSS

    Limiter les données d'une table en fonction d'une autre

    Ulrich COUEGNOUX

      Bonjour à tous

       

      J'ai un pb dans la création de mon script : j'ai une table de sites, une de produits et une de localisation (qui liste les différentes localisations par date : mon produit 1 sur le site A, de telle date à telle date, puis sur le site B de telle date à telle date...)

      Je charge mes sites, que je limite à quelques clients (clause where dans ma requête SQL)

      Je charge ensuite mes localisations, que je limite par un Where Exists(Id Site) : je ne veux que mes localisations sur les sites chargés précédemment.

      Puis je charge mes produits, que je limite par un Where Exists(Id produit) : je ne veux que mes produits qui ont une localisation.

       

      Jusqu'ici tout va bien, je n'ai vraiment que les produits qui sont localisés, sur les bons sites des clients sélectionnés.

       

      Sauf que j'ai des produits qui ont été supprimés, et les localisations sont toujours présentes dans mon entrepôt (un pb que je vais transmettre à qui de droit )

      Je souhaiterai donc n'avoir que les localisations pour des produits existants.

       

      Je pensais utiliser un drop table, mais sans succès

      Script initial :

      SQL Select IdSite, NomSite

      From SITE;

       

      LOAD * where exists(IdSite);

      SQL Select IdSite, IdProduit, DateDébut, DateFin

      From LOCALISATION;

       

      LOAD * where exists(IdProduit);

      SQL Selec IdProduit, Marque, Modele, NumSerie

      From PRODUIT;

       

      et je devrai ajouter une table du style:

      LOAD * RESIDENT LOCALISATION where exists(IdProduit);

      DROP Table LOCALISATION;

       

      Au chargement, je retrouve ma table avec les mêmes données que le script initial.

       

      A+