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

Sybase Discussion :

utilisation de curseur


Sujet :

Sybase

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Juin 2003
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 3
    Points : 1
    Points
    1
    Par défaut utilisation de curseur
    bonjour
    j'ai une table avec 2 colonnes VALUE et DATE
    je voudrais faire un select de cette table qui supprimerait les lignes consécutives où il y a la même valeur dans VALUE
    ex : dans ma table ya :
    160 01/01/01
    160 02/01/01
    160 03/01/01
    145 04/01/01


    et je voudrais qu'il me renvoie
    160 01/01/01
    145 04/01/01

    Comment faire ?
    merci

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    956
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 956
    Points : 1 199
    Points
    1 199
    Par défaut
    Bonjour,
    Tu ne nous donnes pas beaucoup de détail sur comment on détermine quelle date prendre.
    D'après ton jeu d'essai, cette requête pourrait fonctionner.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select VALue, MIN(date) from MAtable group by VALUE
    Petit conseil, je serais toi, je n'appellerai pas mon champ Date, c'est souvent un mot réservé dans les langages.
    a+
    Soazig

  3. #3
    Nouveau Candidat au Club
    Inscrit en
    Juin 2003
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Dans une suite d'enregistrements consécutifs, je veux qu'il me renvoie la première date et la première valeur et qu'il delete les autres enregistrements. Le pbl avec ta requete c'est qu'il me delete tous les enregistrements dont les VALUE sont égales ==> pas bon
    si j'ai :
    150 01/01/95
    150 02/01/95
    12 03/01/95
    12 04/01/95
    46 05/01/95
    150 06/01/95
    je veux
    150 01/01/95
    12 03/01/95
    46 05/01/95
    150 06/01/95

    foila
    merci

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    956
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 956
    Points : 1 199
    Points
    1 199
    Par défaut
    Bonjour,
    La requete que je t'ai fournie est une requete de sélection donc il ne delete rien du tout, il affiche, c'est tout.
    Ce que tu veux, c'est récupérer une liste de valeur, ou supprimer des enregistrements?

    Je n'ai toujours pas compris ce que tu veux.
    Et surtout qu'est ce que tu appelles des enregistrements consécutifs, si tu ne nous donne pas ton critère de tri on aura du mal à t'aider.


    Quel est ton SGBD?
    A+
    Soazig

  5. #5
    Nouveau Candidat au Club
    Inscrit en
    Juin 2003
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    effectivement je me suis mal exprimé. En fait je ne veux pas faire de delete (pardon).
    par ailleurs je suis sur sybase.
    je veux traiter une longue liste de données (365 données pour 365 jours)
    de 01/01/1996 au 01/01/1996 (1 ère colonne de dates )
    des valeurs dans une deuxième colonne "VALUE"
    je veux faire un select de cette table en renvoyant les dates et les valeurs. Le seul traitement a faire est que si il y a des lignes consécutives (qui se suivent) qui ont des valeurs de la colonne "VALUE" identiques, je veux que le select ne renvoie que la première ligne et pas la deuxième. Il faut donc faire un tri du style : je lie la première ligne, je lie la deuxième. si dans la colonne "VALUE" de la deuxième ligne j'ai la même valeur que pour la première ligne et bien je n'affiche pas la deuxième ligne . Et ainsi de suite (cf exemple deux messages avant)

    La première réponse que tu m'a donnée est bonne que si je veux virer tous les lignes qui ont les mêmes valeurs dans la colonne "VALEUR", ce qui n'est pas le cas (que les lignes consécutives)

    C'est pour cela que je voulais utiliser des curseurs
    je sais pas si c'est tres clair
    c'est pas évident de s'exprimer par écrit
    merci

  6. #6
    Membre actif
    Inscrit en
    Février 2003
    Messages
    182
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 182
    Points : 206
    Points
    206
    Par défaut
    une solution un peu tirée par les cheveux mais fonctionne bien

    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
    16
    17
    SELECT  *
    FROM tab1 a
    WHERE date=(Select min(date)
                         From tab1 b
                        Where a.value=b.value)
    OR       date=(Select min(date) 
                         from tab1 c
                         Where a.value=c.value
                         And c.date > (Select Min(date) from tab1 e
                                              Where  e.value<>c.value
                                               And  e.date>(Select max(dat) 
                                                                    From tab1 f
                                                                    Where e.value<>f.value
                                                                    And f.date<a.date 
                                                                   ) 
                                            ) 
                         )
    A+

Discussions similaires

  1. Utiliser un curseur se trouvant dans "C:/WINDOWS/Cursors".
    Par Pragmateek dans le forum Windows
    Réponses: 5
    Dernier message: 31/08/2006, 12h59
  2. Utilisation de curseur..
    Par Nadaa dans le forum MS SQL Server
    Réponses: 9
    Dernier message: 26/07/2006, 10h49
  3. [Débutant] Utilisation de curseurs
    Par snoopy69 dans le forum Oracle
    Réponses: 17
    Dernier message: 14/06/2006, 08h50
  4. Réponses: 2
    Dernier message: 16/05/2006, 09h57
  5. [TChart] Comment utiliser le curseur sur une courbe ?
    Par marsupilami34 dans le forum Composants VCL
    Réponses: 4
    Dernier message: 29/09/2005, 16h49

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