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

Développement SQL Server Discussion :

Requete avec inner join sur une meme table


Sujet :

Développement SQL Server

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    201
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 201
    Points : 114
    Points
    114
    Par défaut Requete avec inner join sur une meme table
    Bonjour,

    LA structure de ma table enfantaccueilpointage se présente ainsi :

    id
    datedebut
    arrivée
    départ
    durée
    année
    prevision
    idtableaccueil
    idtableenfant
    idtableenfantaccueil

    Dans arrivee et depart je stock des heures,la colonne prévision qui contient 0 ou 1 sert a savoir si les heures enregistré sont des heures "réelles" ou des heures prévisionnel, pour le meme jour il peu y avoir un enregistrement avec des heures réelle et u autre avec des heures previsionnel.

    Maintenant en fait j'ai besoin pour un jour donnée d'afficher et les prevision et les heures reelles dans un meme resultat de requete.

    Du coup j'ai ecrit cette requete :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    select b.idtableenfantaccueil,b.idtableenfant,b.idaccueil,if(b.datedebut = '2011-12-12', b.arrivee,'00:00') as pointagearrivee, 
    if( b.datedebut = '2011-12-12',b.depart ,'00:00')as pointagedepart,if( a.datedebut = '2011-12-12',a.arrivee,'00:00') as previsionarrivee,
     if( a.datedebut = '2011-12-12',a.depart  ,'00:00') as previsiondepart,a.datedebut as deb1,b.datedebut as deb2
      from  (select * from enfantaccueilpointage where prevision=0 and datedebut = '2011-12-12') b 
    inner join (select * from enfantaccueilpointage where prevision=1 and datedebut= '2011-12-12' ) as a ON 
    (b.enfantaccueilid=a.enfantaccueilid  and b.enfantid =b.enfantid and b.annee = a.annee and 
    b.accueilid= a.accueilid and a.datedebut = b.datedebut) where (a.datedebut = '2011-12-12' or b.datedebut =  '2011-12-12' 
    or (a.datedebut is null and b.datedebut is null))) c ON (enfantaccueil.enfantaccueilid=c.enfantaccueilid 
    and accueil.accueilid = c.accueilid and enfantaccueil.enfantid = c.enfantid and (anneedate.jour = c.deb1 or anneedate.jour = c.deb2)))
    Cette requete fonctionne assez bien mon seul souci et quand pour un jour donnée j'ai des arrive et depart previsionnel ou des arrivee et depart relle , mes heures ne s'affiche pas , elle s'affiche seulement quand j'ai les 2 pour le meme jour et je n'arrive pas a trouver comment modifier ma requete pour avoir soit l'un soit l'autre soit les deux

    Merci

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    201
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 201
    Points : 114
    Points
    114
    Par défaut
    c bon j'ai trouvé merci

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

Discussions similaires

  1. Deux inner join sur une même table
    Par Pachina75 dans le forum Langage SQL
    Réponses: 5
    Dernier message: 04/06/2014, 14h54
  2. Plusieurs count sur une requete avec INNER JOIN
    Par Guizmo95 dans le forum Requêtes
    Réponses: 0
    Dernier message: 22/08/2013, 19h30
  3. INNER JOIN sur la meme table
    Par fikovic30 dans le forum Développement
    Réponses: 8
    Dernier message: 08/05/2013, 15h58
  4. INNER JOIN sur une requete UPDATE
    Par Immobilis dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 06/03/2006, 14h05
  5. DOUBLE REQUETE SUR UNE MEME TABLE
    Par MORAS dans le forum Langage SQL
    Réponses: 2
    Dernier message: 25/01/2006, 13h40

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