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 :

Aide pour requête


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Novembre 2012
    Messages
    56
    Détails du profil
    Informations forums :
    Inscription : Novembre 2012
    Messages : 56
    Par défaut Aide pour requête
    Bonjour

    Voila j'aurais besoin d'un coup de main pour la chose suivante

    J'ai une table "T_AFFECTATION_VEHICULE" gérant les affectations de véhicules. Elle est composée comme suis:
    • ID_VEHICULE
    • DATE_DEBUT
    • DATE_FIN
    • ID_CLIENT
    • ID_AFFECTATION


    Je souhaite connaitre pour chaque date comprise entre la sélection de deux date les véhicules affectés a tel client.

    Par exemple.
    Pour le client TOTO entre le 01 janvier 2013 et le 05 janvier 2013.

    Résultat:
    01/01/2013 VEH1
    01/01/2013 VEH2
    02/01/2013 VEH1
    02/01/2013 VEH2
    02/01/2013 VEH3
    03/01/2013 VEH1
    03/01/2013 VEH4
    etc...

    D'avance merci de vos réponse

  2. #2
    Membre actif
    Homme Profil pro
    ingénieur d'étude PL/SQL
    Inscrit en
    Octobre 2002
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur d'étude PL/SQL

    Informations forums :
    Inscription : Octobre 2002
    Messages : 53
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    select DATE_DEBUT, ID_VEHICULE from T_AFFECTATION_VEHICULE
    where DATE_DEBUT between to_date('01/01/2013','DD/MM/YYYY') and  to_date('05/01/2013','DD/MM/YYYY')
    AND ID_CLIENT = 'TOTO'
    group by DATE_DEBUT, ID_VEHICULE ;

  3. #3
    Membre averti
    Inscrit en
    Novembre 2012
    Messages
    56
    Détails du profil
    Informations forums :
    Inscription : Novembre 2012
    Messages : 56
    Par défaut
    Bonjour vttvolant

    La requête que tu proposes me renverra seulement le premier jour de l'affectation si la date_début et dans ma sélection.

    Hors je veux connaitre tous les véhicules affectés a ce client et ce pour chaque jour de ma sélection.

    Merci quand meme

  4. #4
    Membre averti
    Inscrit en
    Novembre 2012
    Messages
    56
    Détails du profil
    Informations forums :
    Inscription : Novembre 2012
    Messages : 56
    Par défaut
    Re

    En cherchant un peu j'ai trouvé une requête qui me permet de lister les jours entre deux date.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Select level + to_date('01/04/2013', 'dd/mm/yyyy') - 1 as jour from dual
    connect by level < to_date('10/04/2013', 'dd/mm/yyyy') - to_date('01/04/2013', 'dd/mm/yyyy') + 2
    En jointant cette requête comme suis j'obtiens ce dont j'ai besoin par contre j'aimerais vos avis sur la méthode employé.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    select id_vehicule,jour  from vehicule_affectation
    join (Select level + to_date('01/04/2013', 'dd/mm/yyyy') - 1 as jour from dual
    connect by level < to_date('10/04/2013', 'dd/mm/yyyy') - to_date('01/04/2013', 'dd/mm/yyyy') + 2) TJOUR on TJOUR.jour>=date_debut and TJOUR.jour<=date_fin  
    where
        to_char(date_debut,'YYYYMMDD')>='20130402' and  to_char(date_debut,'YYYYMMDD')<='20130401' and id_client='10123'
        OR to_char(date_fin,'YYYYMMDD')>='20130402' and  to_char(date_fin,'YYYYMMDD')<='20130401' and id_client='10123'
        OR  to_char(date_debut,'YYYYMMDD')<='20130402' and  to_char(date_fin,'YYYYMMDD')>='20130401'and id_client='10123'
    Est ce comme cela qu'il faut s'y prendre. Vaut il mieux créer une table contenant tous les jours possibles et effectuer les jointures sur celle ci?

    D'avance merci de vos retours.

  5. #5
    Membre actif
    Homme Profil pro
    ingénieur d'étude PL/SQL
    Inscrit en
    Octobre 2002
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur d'étude PL/SQL

    Informations forums :
    Inscription : Octobre 2002
    Messages : 53
    Par défaut
    Citation Envoyé par sebgoe Voir le message
    Bonjour vttvolant

    La requête que tu proposes me renverra seulement le premier jour de l'affectation si la date_début et dans ma sélection.

    Hors je veux connaitre tous les véhicules affectés a ce client et ce pour chaque jour de ma sélection.

    Merci quand meme
    as tu testé la requete ?
    il y a un group by sur la date

  6. #6
    Membre averti
    Inscrit en
    Novembre 2012
    Messages
    56
    Détails du profil
    Informations forums :
    Inscription : Novembre 2012
    Messages : 56
    Par défaut
    Voilà je viens de tester ta requête et elle me donne id_vehicule et date debut des véhicules qui ont une affectation qui commence entre les dates spécifiées.

    Ce n'est donc pas ce que je souhaite obtenir. Merci quand même pour ta réponse.

    Et par rapport à ma question entre l'utilisation de from DUAL ou d'une table de Date personne n'a d'avis?

Discussions similaires

  1. Besoin d'aide pour requête sur grosse table
    Par Fabouney dans le forum Langage SQL
    Réponses: 3
    Dernier message: 25/01/2006, 09h01
  2. [SQL] Aide pour requête
    Par portu dans le forum Access
    Réponses: 8
    Dernier message: 23/09/2005, 13h05
  3. Aide pour requête de Tri assez spécial (Oracle)
    Par Chips dans le forum Langage SQL
    Réponses: 2
    Dernier message: 29/04/2005, 10h56
  4. [sqlbaseserver]demande de conseils/aides pour requêtes
    Par GéniuS77 dans le forum Langage SQL
    Réponses: 14
    Dernier message: 18/03/2004, 17h27
  5. Aide pour Requête
    Par Guiche dans le forum Langage SQL
    Réponses: 3
    Dernier message: 13/11/2003, 20h18

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