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 :

j'ai besoin d'aide sur une requête


Sujet :

SQL Oracle

  1. #1
    Membre habitué Avatar de PoichOU
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2006
    Messages
    328
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juillet 2006
    Messages : 328
    Points : 161
    Points
    161
    Par défaut j'ai besoin d'aide sur une requête
    Bonjour à tous,

    je voudrais faire une requête et j'aimerai un coup de main de votre part.

    Je vais essayer d'expliquer aussi clairement que possible.

    J'ai 2 tables :

    une table voiture qui contient toutes les voitures de mon parc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    -----------------------
          VOITURE
    -----------------------
     ID | MARQUE  | MODELE
    -----------------------
     1  | RENAULT | TWINGO
     2  | PEUGEOT | 106
     3  | PEUGEOT | 206
     4  | PEUGEOT | 206CC
     5  | RENAULT | MEGANE
     6  | RENAULT | MEGANE

    j'ai une table qui contient les publicités présentes sur chaque voiture avec la date de début et date de fin de validité :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    -----------------------------------------------
          PUBLICITE
    -----------------------------------------------
     IDVOITURE | SOCIETE  | DATEDEBUT  | DATEFIN
    -----------------------------------------------
     1         | BWIN     | 2009-11-01 | 2010-01-01
     1         | NOVOTEL  | 2010-01-02 | 2010-05-01
     3         | AGF      | 2010-01-02 | 2010-05-01
     5         | TELESTAR | 2009-11-01 | 2010-01-01

    Je voudrais faire une requête qui m'afficherai la présence ou non de publicité sur chaque voiture à la date du jour.
    NOTE : Dans publicité il n'y a pas forcément une ligne pour chaque voiture
    NOTE2 : il faut tenir compte de la date

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    -------------------------------------
          RESULTAT REQUETE
    -------------------------------------
     ID | MARQUE  | MODELE | ISPUBLICITE
    -------------------------------------
     1  | RENAULT | TWINGO | TRUE
     2  | PEUGEOT | 106    | FALSE
     3  | PEUGEOT | 206    | TRUE
     4  | PEUGEOT | 206CC  | FALSE
     5  | RENAULT | MEGANE | FALSE
     6  | RENAULT | MEGANE | FALSE

    • voiture n°1 - il y a une publicité NOVOTEL active donc TRUE
    • voiture n°2 - il n'y a pas de ligne dans PUBLICITE donc FALSE
    • voiture n°3 - il y a une publicité AGF active donc TRUE
    • voiture n°4 - il n'y a pas de ligne dans PUBLICITE donc FALSE
    • voiture n°5 - il y a une ligne dans PUBLICITE mais les dates ne sont pas bonnes donc FALSE
    • voiture n°6 - il n'y a pas de ligne dans PUBLICITE donc FALSE



    La base de données n'est pas forcément top mais je pense qu'il y a moyen d'avoir ce résultat avec une seule requête. Le hic c'est que les INNER, OUTER, JOIN, IN et OUT sont bien loin maintenant pour moi. Est-ce qu'une âme charitable pourrait m'aider ?

    Pour info ma BDD est sous ORACLE.

    Merci

    PoichOU

  2. #2
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par PoichOU Voir le message
    La base de données n'est pas forcément top mais je pense qu'il y a moyen d'avoir ce résultat avec une seule requête. Le hic c'est que les INNER, OUTER, JOIN, IN et OUT sont bien loin maintenant pour moi. Est-ce qu'une âme charitable pourrait m'aider ?
    http://sqlpro.developpez.com/cours/sqlaz/jointures/
    http://sqlpro.developpez.com/cours/sqlaz/ensembles/

  3. #3
    Membre habitué Avatar de PoichOU
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2006
    Messages
    328
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juillet 2006
    Messages : 328
    Points : 161
    Points
    161
    Par défaut
    Merci pour ces liens mais je dois avouer que ce n'est pas évident de tout comprendre (il n'y a plus de prof comme à l'école pour répondre aux questions ).

    Je me dis aussi que si toi ou quelqu'un d'autre sait faire cette requête rapidement je suis preneur .

    Je met les dumps si ça peut motiver quelqu'un à m'aider :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    CREATE TABLE `voiture` (
      `ID` int(11) NOT NULL,
      `MARQUE` varchar(50) NOT NULL,
      `MODELE` varchar(50) NOT NULL
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
     
    INSERT INTO `voiture` (`ID`, `MARQUE`, `MODELE`) VALUES 
    (1, 'RENAULT', 'TWINGO'),
    (2, 'PEUGEOT', '106'),
    (3, 'PEUGEOT', '206'),
    (4, 'PEUGEOT', '206CC'),
    (5, 'RENAULT', 'MEGANE'),
    (6, 'RENAULT', 'MEGANE');
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    CREATE TABLE `publicite` (
      `IDVOITURE` int(11) NOT NULL,
      `SOCIETE` varchar(50) NOT NULL,
      `DATEDEBUT` date NOT NULL,
      `DATEFIN` date NOT NULL
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
     
    INSERT INTO `publicite` (`IDVOITURE`, `SOCIETE`, `DATEDEBUT`, `DATEFIN`) VALUES 
    (1, 'BWIN', '2009-11-01', '2010-01-01'),
    (1, 'NOVOTEL', '2010-01-02', '2010-05-01'),
    (3, 'AGF', '2010-01-02', '2010-05-01'),
    (5, 'TELESTAR', '2009-11-01', '2010-01-01');
    Merci
    PoichOU

  4. #4
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par PoichOU Voir le message
    Merci pour ces liens mais je dois avouer que ce n'est pas évident de tout comprendre (il n'y a plus de prof comme à l'école pour répondre aux questions ).
    Moi qui pensais que la nécessité d'acquérir de nouvelles connaissances et l'auto formation étaient des attraits importants de la job.

    Pour info, tes scripts ne ressemblent en rien à du oracle.

  5. #5
    Membre habitué Avatar de PoichOU
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2006
    Messages
    328
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juillet 2006
    Messages : 328
    Points : 161
    Points
    161
    Par défaut
    Citation Envoyé par Jerome_Mtl Voir le message
    Moi qui pensais que la nécessité d'acquérir de nouvelles connaissances et l'auto formation étaient des attraits importants de la job.
    Je suis d'accord avec toi mais faire un site web demande énormément de connaissance : php, html, css, javascript, flash, sql, ... Personnellement, il m'est difficile de maitriser chaque domaine. J'ai des bases en SQL mais pour cette requête je veux bien un petit coup de main .


    Citation Envoyé par Jerome_Mtl Voir le message
    Pour info, tes scripts ne ressemblent en rien à du oracle.
    Là j'ai refait un exemple rapide avec MySQL mais je pense que ça marche aussi bien avec Oracle ou MySQL

  6. #6
    Membre émérite Avatar de nuke_y
    Profil pro
    Indépendant en analyse de données
    Inscrit en
    Mai 2004
    Messages
    2 076
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Indépendant en analyse de données

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 076
    Points : 2 370
    Points
    2 370
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    select
    voiture.id
    ,voiture.marque
    ,voiture.modele
    ,count(publicite.idvoiture)
    from
    voiture left outer join publicite on (voiture.id = publicite.idvoiture and publicite.datedebut <= sysdate and sysdate <= publicite.datefin)
    group by
    voiture.id
    ,voiture.marque
    ,voiture.modele
    Il te reste à gérer le passage du count vers TRUE/FALSE, même si pour moi il vaut mieux gérer cette transformation dans l'application.
    Il vaut mieux monopoliser son intelligence sur des bêtises que sa bêtise sur des choses intelligentes.

  7. #7
    Membre habitué Avatar de PoichOU
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2006
    Messages
    328
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juillet 2006
    Messages : 328
    Points : 161
    Points
    161
    Par défaut
    Un GRAND MERCI mister nuke_y

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [SQL] Besoin d'aide sur une requête
    Par moonboot dans le forum Oracle
    Réponses: 1
    Dernier message: 01/08/2006, 15h56
  2. besoin d'aide sur une requête mysql
    Par unmulot dans le forum Langage SQL
    Réponses: 5
    Dernier message: 07/07/2006, 13h17
  3. [SQL] Besoin d'aide sur une requête
    Par Angath dans le forum Langage SQL
    Réponses: 2
    Dernier message: 17/01/2006, 16h26
  4. Réponses: 1
    Dernier message: 03/08/2005, 11h41
  5. Besoin d'aide sur une requête (JOIN + COUNT ?)
    Par PanzerKunst dans le forum Langage SQL
    Réponses: 2
    Dernier message: 01/06/2005, 10h29

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