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 :

sequence de 2 lignes


Sujet :

Langage SQL

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 8
    Points : 7
    Points
    7
    Par défaut sequence de 2 lignes
    Bonjour,

    J'ai une table acte dont le modele est le suivant:
    (Num_dossier , Seq_Num_acte , acte_dossier, date_action).

    Pour migrer vers une autre application j'ai besoin de vérifier que lorsque 2 types d'actes réalisés sequentiellement (ordre dans seq_num_acte) pour un même dossier.

    comment jumelé 2 lignes ?

  2. #2
    Membre confirmé Avatar de elbj
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2004
    Messages
    371
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Services à domicile

    Informations forums :
    Inscription : Novembre 2004
    Messages : 371
    Points : 558
    Points
    558
    Par défaut
    Bonjour

    Pour migrer vers une autre application j'ai besoin de vérifier que lorsque 2 types d'actes réalisés sequentiellement (ordre dans seq_num_acte) pour un même dossier.
    J'ai l'impression que cette phrase est incomplète, j'ai du mal à la comprendre. Peut-on avoir plus de précisions ?

    Cordialement
    Christophe B.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 8
    Points : 7
    Points
    7
    Par défaut
    Pour sequencer les actes , et retracer l'historique des actes
    la colonne Seq_Num_acte gere la sequence.

    ex:
    ----------------------------------------------------------
    |Num_dossier |Seq_Num_acte | acte_dossier | date_action |
    ----------------------------------------------------------
    | 1001 | 1 | CT045 | 03/01/2008 |
    | 1001 | 2 | CP047 | 03/01/2008 |
    | 1001 | 3 | QN041 | 04/01/2008 |
    | 1002 | 1 | CT045 | 05/01/2008 |
    | 1002 | 2 | CT047 | 05/01/2008 |

    Pour le dossier 1001 les actes CT045 et CP047 ne doivent plus faire qu'une seule ligne.

  4. #4
    Membre confirmé Avatar de elbj
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2004
    Messages
    371
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Services à domicile

    Informations forums :
    Inscription : Novembre 2004
    Messages : 371
    Points : 558
    Points
    558
    Par défaut
    Pour le dossier 1001 les actes CT045 et CP047 ne doivent plus faire qu'une seule ligne.
    Il y a trois actes pour ce dossier. Quelle est la règle de gestion qui permet de définir que ce sont ces deux actes là (CT045 et CP047) qui doivent ne faire qu'une ligne ? Est-ce parce qu'ils ont été faits le même jour ?
    Christophe B.

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 8
    Points : 7
    Points
    7
    Par défaut
    Dans la nouvelle implementation , CT045 et CP047 le nouveau code remplacant dans la base est CT060.

    QN041 etant un autre actes qui ne change pas dans la nouvelle application

  6. #6
    Membre confirmé Avatar de elbj
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2004
    Messages
    371
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Services à domicile

    Informations forums :
    Inscription : Novembre 2004
    Messages : 371
    Points : 558
    Points
    558
    Par défaut
    Bonjour

    Ca va être très difficile de vous aider si à chacune de mes questions sur vos règles de gestion, d'une part vous ne répondez pas à ma question et, d'autre part, vous me donnez une nouvelle règle de gestion.

    Alors si vous souhaitez recevoir de l'aide merci de présenter clairement et complètement votre problème.
    Christophe B.

  7. #7
    Membre confirmé Avatar de Monstros Velu
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2003
    Messages
    619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 619
    Points : 601
    Points
    601
    Par défaut
    Je crois que ce qu'il veut, c'est simplement fusionner les lignes avec le même numéro de dossier et CT045 et CP047 en acte qui se suivent.



    Je ferai un truc comme ça, p'tet pas optimisé, mais cette requête ne doit probablement être passée qu'une seule fois, alors...


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    select a1.Num_dossier, a1.Seq_Num_acte, CT060 as acte_dossier, a1.date_action 
    from acte a1
    	inner join acte a2
    		on a1.Num_dossier = a2.Num_dossier
    where a1.acte_dossier = CT045 
    	and a2.acte_dossier = CP047 
    	and abs(a1.Seq_Num_acte - a2.Seq_Num_acte) = 1
    union
    select a1.Num_dossier, a1.Seq_Num_acte, a1.acte_dossier, a1.date_action 
    from acte a1
    	left outer join acte a2
    		on a1.Num_dossier = a2.Num_dossier
    where not (	a1.acte_dossier = CT045 
    			and a2.acte_dossier = CP047 
    			and abs(a1.Seq_Num_acte - a2.Seq_Num_acte) = 1)
    note que je ne touche pas aux numero de séquence

  8. #8
    Modérateur
    Avatar de Chtulus
    Homme Profil pro
    Ingénieur
    Inscrit en
    Avril 2008
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2008
    Messages : 3 094
    Points : 8 678
    Points
    8 678
    Par défaut
    Bonjour,

    Je serai plutôt d'accord avec Elbj, dont je passe passe le bonjour, et oui la creature des abyss est encore là... (Private Joke)

    Et oui, Monstros Velu, je reconnais que tes aides sont plus que les bien venues (Pour les autres comme pour moi) mais là comment définir une requête avec
    CT045 et CP047 le nouveau code remplacant dans la base est CT060
    et des règles qui fusent à chaques questions ?


    Moi ce que j'ai compris c'est que lorsque 2 numéro "acte_dossier" identique (C'est là ou CT045 et CP047 rentre en jeu avec maintenant CT060) qui se suive avec un "Seq_Num_acte" ( i et i+1) la on regroupe ou on concaténe ?

    Donc le résultat voulu serait (Regroupement) :

    |Num_dossier |Seq_Num_acte | acte_dossier | date_action |
    ----------------------------------------------------------
    | 1001 | 2 | CT060 | 03/01/2008 |
    | 1001 | 3 | QN041 | 04/01/2008 |
    | 1002 | 2 | CT060 | 05/01/2008 |
    Non !!! ndurieu
    « Je ne cherche pas à connaître les réponses, je cherche à comprendre les questions. »
    - Confucius -

    Les meilleurs cours, tutoriels et Docs sur les SGBD et le SQL
    Tous les cours Office
    Solutions d'Entreprise



  9. #9
    Membre confirmé Avatar de Monstros Velu
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2003
    Messages
    619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 619
    Points : 601
    Points
    601
    Par défaut
    Je suis d'accord qu'il n'est pas tres clair (et que ses phrases ne sont pas en Français), et j'ai fait ma requête avec ce qu'il a donné ^^

    Je suis parti de ça :
    Pour le dossier 1001 les actes CT045 et CP047 ne doivent plus faire qu'une seule ligne.
    et
    Dans la nouvelle implementation , CT045 et CP047 le nouveau code remplacant dans la base est CT060.

    QN041 etant un autre actes qui ne change pas dans la nouvelle application
    En traduisant en Français, j'ai compris qu'il fallait que les lignes d'un même dossier, qui se suivent, avec les codes CT045 et CP047, doivent fusionner, le code devenant CT060. Et j'ai fait une réponse qui correspond à ses critères.
    Je n'ai pas touché aux dates ou au numéro de séquence, je lui fournis une requête qui correspond à son "problème" de fusion de ligne, libre à lui d'adapter ensuite pour ce qu'il veut réellement.

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

Discussions similaires

  1. programmation corba: le type "sequence"
    Par Kali dans le forum CORBA
    Réponses: 4
    Dernier message: 28/08/2005, 16h09
  2. [TP]lire une ligne de l'ecran et la stocker dans une chaine
    Par Bleuarff dans le forum Turbo Pascal
    Réponses: 26
    Dernier message: 02/07/2002, 10h08
  3. Réponses: 2
    Dernier message: 05/06/2002, 12h29
  4. String Grid et choix d'une couleur pour une ligne
    Par Gigottine dans le forum C++Builder
    Réponses: 12
    Dernier message: 17/05/2002, 15h23

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