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 :

comment selectionner un champ mis a jour + sql server


Sujet :

MS SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    175
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2008
    Messages : 175
    Par défaut comment selectionner un champ mis a jour + sql server
    Bonjour,
    jai des doublons qui contient qlq enregistrements qui sont pareils alors pour les distinguer je dois selectionner par exemple un enregistrent dont le champ date est mis a jour.
    j'espere etre clair
    merci pour votre aide.

  2. #2
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Haute Garonne (Midi Pyrénées)

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

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Par défaut
    Bonjour,

    Sans le DDL de votre table ni un jeu d'essai, difficile d'aller plus loin ...

    @++

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    175
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2008
    Messages : 175
    Par défaut comment selectionner un champ mis a jour + sql server
    Bonjour et merci pour ta reponse,
    champs de la table:
    Id: cle primaire
    adresse
    telephone
    Date
    Id est le meme, les autres champs changent.
    alors c pour ca jai pense a une requette qui cherche la date du dernier enregistrement entre dans la bd et l'affiche.
    j'espere etre claire cette fois

  4. #4
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Haute Garonne (Midi Pyrénées)

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

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Par défaut
    Bonsoir,

    J'ai fini par comprendre : en fait vous cherchez à trouver les données des clients lorsqu'ils se sont enregistrés pour la dernière fois.

    Avant toute chose, voici à quoi ressemble un script SQL DDL d'une table extrait avec Management Studio (2005) ou Query Analyzer (2000) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    CREATE TABLE [dbo].[TbClient](
    	[ID] [int] NOT NULL,
    	[adresse] [varchar](100) COLLATE French_CI_AS NOT NULL,
    	[telephone] [char](10) COLLATE French_CI_AS NOT NULL,
    	[Date] [datetime] NOT NULL
    ) ON [PRIMARY]
     
    GO
    SET ANSI_PADDING OFF
    GO
    ALTER TABLE [dbo].[TbClient]  WITH CHECK ADD  CONSTRAINT [CHK_TbClient_telephone] CHECK  (([telephone] like '[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'))
    GO
    ALTER TABLE [dbo].[TbClient] CHECK CONSTRAINT [CHK_TbClient_telephone]
    Ou plus simplement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    CREATE TABLE TbClient
    (
    	ID INT NOT NULL,
    	adresse VARCHAR(100) NOT NULL,
    	telephone CHAR(10) NOT NULL CONSTRAINT CHK_TbClient_telephone CHECK (telephone LIKE '[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'),
    	Date DATETIME NOT NULL
    )
    GO
    Et un jeu d'essai eut été un extrait, même factice, de votre table, ou une suite d'ordre INSERT pour remplir la table par exemple.
    En faisant cela ni vous ni moi ne perdez de temps.
    En faisant cela vous respecteriez une partie de la charte de postage du forum

    J'ai donc utilisé le script que je viens de vous donner pour créer la table, puis je l'ai peuplée avec les données suivantes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    INSERT INTO dbo.TbClient VALUES (1, '12, rue Mâletache, 31000 Toulouse', '0600000000', '12/01/2009 15:00:00.000')
    INSERT INTO dbo.TbClient VALUES (1, '1, Place du Capitole, 31000 Toulouse', '0611111111', '15/01/2009 16:00:00.000')
    INSERT INTO dbo.TbClient VALUES (2, '2, rue du Pois de l''huile, 31000 Toulouse', '0622222222', '12/02/2009 15:00:00.000')
    INSERT INTO dbo.TbClient VALUES (2, '1, Place des Carmes, 31000 Toulouse', '0633333333', '15/02/2009 16:00:00.000')
    INSERT INTO dbo.TbClient VALUES (3, '1, Place Esquirol, 31000 Toulouse', '0644444444', '01/01/2009 00:00:00.000')
    GO
    Et voici les requêtes :

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    -- Dès SQL Server 2005
    WITH
    	CTE_DerniereMAJ AS
    	(
    		SELECT ID,
    				MAX(Date) DateDerniereMaj
    		FROM dbo.TbClient
    		GROUP BY ID
    	)
    SELECT C.ID,
    		C.Telephone, 
    		C.Adresse,
    		C.Date
    FROM dbo.TbClient C
    JOIN CTE_DerniereMAJ D
    	ON C.ID = D.ID
    	AND C.Date = D.DateDerniereMaj
     
    -- Dès SQL Server 2000
    SELECT C.ID,
    		C.Telephone, 
    		C.Adresse,
    		C.Date
    FROM dbo.TbClient C
    JOIN (
    		SELECT ID,
    				MAX(Date) DateDerniereMaj
    		FROM dbo.TbClient
    		GROUP BY ID
    	) D
    	ON C.ID = D.ID
    	AND C.Date = D.DateDerniereMaj
    @++

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    175
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2008
    Messages : 175
    Par défaut comment selectionner un champ mis a jour + sql server
    Merci bcp pour ta tres bonne reponse et je suis desole si j'ai mal exprime.
    je pense que j'ai tout d'apres ton explication, je m'en servirais pour resoudre mon probleme.
    merci une autre fois et bonne continuation.

Discussions similaires

  1. Réponses: 2
    Dernier message: 15/12/2012, 09h01
  2. Réponses: 1
    Dernier message: 01/04/2011, 14h04
  3. Comment afficher les champs de ma base SQL ?
    Par tibofo dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 12/03/2011, 21h36
  4. Réponses: 12
    Dernier message: 26/06/2008, 16h40
  5. Comment selectionné UN champs dans un fichier
    Par shoofleouf dans le forum Linux
    Réponses: 2
    Dernier message: 08/11/2007, 16h52

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