Probleme requete

Probleme requete - SQL/NoSQL - Programmation

Marsh Posté le 25-12-2006 à 21:37:04    

Voila j'utilise SQL*Plus ORACLE
j'ai un probleme pr creer ma requete, j'ai besoin d'aide svp
voila en quoi consite ma requete : Afficher les noms et adresses des clients qui ont effectué le plus grand nombre de locations le mois dernier.
 
j'ai ces tables :
 
CREATE TABLE Employe(
 NUM_EMP  INT,
 NOM_EMP     VARCHAR(10),
 NUM_MAG  INT ,
 ADRESSE_EMP VARCHAR(50),
 TYPE_EMP VARCHAR(15),
 DATE_EMBAUCHE DATE,
 constraint Employe_KEY Primary key (NUM_EMP),
 constraint Verif_Employe check(
  TYPE_EMP in('Responsable','Mecanicien','Transporteur','Vendeur'))
);  
 
CREATE TABLE Magasin(
 NUM_MAG  INT,
 NOM_MAG     VARCHAR(30),
 ADRESSE_MAG VARCHAR(100),
 RESPONSABLE INT References Employe(NUM_EMP),
 MACHINE_LOC VARCHAR(5),
 NUM_ZONE  INT,
 DUREE_MAXLOC    INT,
 Constraint Magasin_KEY Primary key (NUM_MAG)
);
 
CREATE TABLE Film(
 NUM_FILM INT,
 CATE_FILM VARCHAR(30),
 M_E_S      VARCHAR(20),
 TITRE   VARCHAR(40),
 ACTEURS_PRINC VARCHAR(80),
 ANNEE_SORTIE  DATE,
 DATE_ACHAT   DATE,
 NB_EXEMPLAIRE_DVD INT,
 NB_EXEMPLAIRE_VHS  INT,
 NB_EXEMPLAIRE_VCD  INT,
 Constraint Film_KEY Primary key (NUM_FILM)
);
 
CREATE TABLE Support(
 CODE_BARRE VARCHAR(25),
 NUM_FILM    INT References Film(NUM_FILM),
 NUM_MAG  INT References Magasin(NUM_MAG),
 TYPE_SUPP   VARCHAR(10),
 DATE_ACHAT DATE,
 NB_LOC    INT,
 ETAT   VARCHAR(15),
 constraint Support_KEY Primary key (CODE_BARRE),
        Constraint VERIF_TYPE_SUPP check(TYPE_SUPP in('DVD','VHS','VCD')),
 constraint VERIF_Etat check(ETAT in('Disponible','NON Disponible'))
);
 
CREATE TABLE Dvd(
 CODE_BARRE VARCHAR(25) References Support(CODE_BARRE),
 DVD_LANGAGE VARCHAR(50),
 DVD_SST     VARCHAR(50),
 DVD_CARTE_STEREO  VARCHAR(20),
 Constraint Dvd_KEY Primary key (CODE_BARRE)
);
 
CREATE TABLE Location(
 NUM_TRANSACTION  INT,
 CODE_BARRE   VARCHAR(25) References Support(CODE_BARRE),
 NUM_FILM    INT References Film(NUM_FILM),
 NUM_CLIENT    INT,
 NUM_MAG_RETOUR  INT,
 NUM_MAG_ORI     INT,
 DATE_LOC   DATE,
 DUREE_LOC     INT,
 PRIX    FLOAT,
 Constraint Location_KEY Primary key (NUM_TRANSACTION)
);
 
CREATE TABLE Client(
 NUM_CLIENT  INT,
 NOM_CLIENT VARCHAR(15),
 ADRESSE_CLIENT    VARCHAR(50),
 FRAIS_ADHESION  FLOAT,
 NB_LOC_MOIS INT,
 PROMOTIONS     VARCHAR(20),
 constraint Client_KEY Primary key (NUM_CLIENT)
);
 
CREATE TABLE Zonage(
       NUM_ZONE INT,
       NUM_EMP INT references Employe(NUM_EMP),
       Constraint Zone_Key Primary Key (NUM_ZONE)
);
 
 
Ces tables se creent correctement.
J'ai deja fait mes 8 autres requetes,il m'en reste 2 dont celle-ci
Merci de m'aider.

Reply

Marsh Posté le 25-12-2006 à 21:37:04   

Reply

Marsh Posté le 25-12-2006 à 21:54:12    

Je connais pas grand chose au SGBDR mais je me doute que "les nom ......." n'est pas une bonne question.
 
En effet soit tu à le client qui à louer le plus, soit autre chose ? par exemple les clients qui on loué plus de la moyenne. ... si je ne m'abuse  :??:

Reply

Marsh Posté le 25-12-2006 à 22:10:45    

oui c LE client mais c au cas ou il ya des client qui ont fait le meme nombre de locations voila :D

Reply

Marsh Posté le 25-12-2006 à 22:14:24    

effectivement  :jap:

Reply

Marsh Posté le 25-12-2006 à 22:33:19    

Donc, je pense qu'il faut dans un premier temps recuperer le nombre 'max' de location le mois precedent le mois courant puis chercher les client ayant un nombre de locations le mois precedent egal à max, spa compliquer  :??:  
Mais moi,comme je n'ai pas fait de SQL depuis 10 ans, je peut pas plus t'aider, désolé  :heink:  

Reply

Marsh Posté le 25-12-2006 à 22:47:09    

ok merci a toi qd meme jovalise

Reply

Marsh Posté le 26-12-2006 à 10:58:42    

alors personne a d'idées ?

Reply

Marsh Posté le 26-12-2006 à 11:08:16    

jovalise a déjà répondu...
 
tu veux pas qu'on te l'écrive non plus ?
 
http://forum.hardware.fr/hfr/Progr [...] 4544_1.htm (articles C et D)


Message édité par MagicBuzz le 26-12-2006 à 11:10:21
Reply

Marsh Posté le 26-12-2006 à 13:45:44    

je savais qu'il fallait proceder comme ceci mais mon probleme est que je n'arrive pas a combiner 2 select :/
si je savais le faire je n'aurais meme pas posé la question...
bon c'est pas grave
merci qd meme a tout le monde

Reply

Marsh Posté le 26-12-2006 à 13:55:17    

select ... from ... where truc = (select max(...) from ... where ...)
 
spa compliqué :spamafote:

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed