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

Langage SQL Discussion :

Table historique sur mutiples attributs : comment éviter les curseurs?


Sujet :

Langage SQL

  1. #1
    Membre averti
    Inscrit en
    Décembre 2004
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 23
    Par défaut Table historique sur mutiples attributs : comment éviter les curseurs?
    SGBD utilisé : SQl server:

    Avant de mettre en place un systeme par curseur hyper long en temps de traitement :

    Existe -t-il en sql un moyen de résoudre le pb suivant :

    Structure Table:
    matricule salarié
    typcontrat
    lieu de travail
    temps de travail
    date debut
    date fin

    Exemple de contenu de la table trié par date debut:

    100, Interimaire,Lyon,tps plein, 01/09/2006, 30/09/2006
    100, CDD,Lyon,tps plein, 01/10/2006, 13/10/2006
    100, CDD,Marseille,tps plein, 14/10/2006, 20/10/2006
    100, CDI,Marseille,tps plein, 21/10/2006, 23/10/2006
    100, CDI,Marseille,tps partiel, 24/10/2006, 31/12/9999

    Question 1 :
    en sql récupérer que les dates d'entrée dans une nouvelle ville :
    réponse attendue :
    100, Lyon 01/09/2006
    100, Marseille 14/10/2006

    Question 2 :
    en sql récupérer que les dates de fin de type de contrat :
    réponse attendue :
    100, Interimaire 30/09/2006
    100, CDD 20/10/2006
    100, CDI 31/12/9999

    Question 3 :
    en sql récupérer que les dates de début de type de contrat et de début de tps de travail:
    réponse attendue :
    100, Interimaire,tps plein, 01/09/2006
    100, CDD,tps plein, 01/10/2006
    100, CDI,tps plein, 21/10/2006
    100, CDI,tps partiel, 24/10/2006

    merci de votre aide, moi à part avec un systeme de parcours de table avec des curseurs, je ne vois pas plus simple.

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    194
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 194
    Par défaut
    il faut utiliser les fonctions d'aggrégat avec des clauses group by.
    exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select matricule, lieu, min (date_debut) as date_debut from table group by matricule, lieu;

  3. #3
    Membre averti
    Inscrit en
    Décembre 2004
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 23
    Par défaut OK pour le group by pour isoler les lignes pertinentes
    Merci, coca25,
    => résolu

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

Discussions similaires

  1. Comment éviter les jointure sur plusieurs tables
    Par xavier81 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 06/02/2011, 15h12
  2. Comment éviter les retours sur l'affichage standard
    Par arnaudperfect dans le forum Shell et commandes GNU
    Réponses: 3
    Dernier message: 22/09/2010, 22h47
  3. Réponses: 4
    Dernier message: 18/07/2007, 10h08
  4. Réponses: 3
    Dernier message: 05/07/2005, 18h07
  5. Comment éviter les doublons dans ma table
    Par einegel dans le forum Bases de données
    Réponses: 3
    Dernier message: 09/11/2004, 12h18

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