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

MS SQL Server Discussion :

trier une table et prendre le plus ancien


Sujet :

MS SQL Server

  1. #1
    Membre averti
    Inscrit en
    Décembre 2006
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 35
    Par défaut trier une table et prendre le plus ancien
    bonjour
    je suis en stage et ils me demande de trier une table selon une colonne(priorité ) et récupérer les enregistrements qui ont la priorité la plus inférieur et aprés récupéré l'enregistrement le plus ancien(colonne date=date système) ,est ce que je dois utiliser un curseur ou bien des boucles for et comment je dois procéder car je suis nouveau en T-SQL
    Merci d'avance

  2. #2
    Membre Expert Avatar de pacmann
    Homme Profil pro
    Consulté Oracle
    Inscrit en
    Juin 2004
    Messages
    1 626
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consulté Oracle
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 626
    Par défaut
    Salut !
    Pour sélectionner 1 ligne, tu utilises TOP :
    SELECT TOP 1 *
    FROM TaTable
    WHERE ...

    "TOP n" Pour les n premières.

    Pour avoir le plus dernier, il te suffit d'inverser l'ordre ?
    ORDER BY MaColonne DESC

  3. #3
    Membre averti
    Inscrit en
    Décembre 2006
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 35
    Par défaut
    Merci pacman
    parcontre pour mon cas j'ai 4 enregistrement qui ont la priorité 1 qui est la plus inférieure; comment récupéré ces 4 enregistrements et aprés prendre le plus ancien entre ces 4 , sachant que je dois chaque fois parcourir ma table et trier selon la priorité et prendre le plus ancien

  4. #4
    Membre expérimenté
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Juillet 2007
    Messages
    193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2007
    Messages : 193
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    select top 1 *
    from table1
    order by priorite asc, 
    datemachin asc
    enfin si j'ai bien compris avec la date et la colonne dans la même table

  5. #5
    Membre averti
    Inscrit en
    Décembre 2006
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 35
    Par défaut
    Merci beaucoup oadin ,il reste juste une petite chose, avec cette requette j'ai récupéré un enregistrement et moi je veux que un seul champ de ce enregistrement (dans mon cas ID_MACHINE) pour pouvoir le comparer avec d'autres ID

  6. #6
    Membre expérimenté
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Juillet 2007
    Messages
    193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2007
    Messages : 193
    Par défaut
    bah tu remplaces l'étoile par le nom du champs

    de toute façon les select * sont découragés pour être remplacer par des select <nom champs>

  7. #7
    Membre averti
    Inscrit en
    Décembre 2006
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 35
    Par défaut
    pour le champ c'est réglé , il me reste juste une petite question ; parcourir une table qui contien deux colonne ID_MACHINE1 et ID_MACHINE2 , j'ai recupéré les deux ID à partir d'autre endrois , il me reste de trouver si c'est deux ID se trouve dans la meme ligne dans la table précédente(machine1 accepte la machine2)sinon je termine le traitement.

  8. #8
    Membre expérimenté
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Juillet 2007
    Messages
    193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2007
    Messages : 193
    Par défaut
    euh
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if exists(select * from machines where machine1 - @mavar1 and machine2 = @mavar2)
    begin
    traitement
    end
    else 
    quitter

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

Discussions similaires

  1. trier une table paradox
    Par sabrina22 dans le forum Bases de données
    Réponses: 1
    Dernier message: 02/01/2006, 17h32
  2. Comment trier une table paradox dans un Ttable sur un Dbgrid
    Par amireve dans le forum Bases de données
    Réponses: 5
    Dernier message: 26/12/2005, 19h28
  3. Trier une table .db paradox
    Par James64 dans le forum Bases de données
    Réponses: 7
    Dernier message: 25/10/2005, 11h01
  4. Trier une table avec valeur de differentes unités
    Par Sydaze dans le forum Bases de données
    Réponses: 8
    Dernier message: 01/06/2005, 11h43
  5. [VB.NET] Trier une table de mon DataSet
    Par San Soussy dans le forum ASP.NET
    Réponses: 3
    Dernier message: 03/03/2005, 17h30

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