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.
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.
Bonjour,
Sans le DDL de votre table ni un jeu d'essai, difficile d'aller plus loin ...
@++![]()
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![]()
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) :
Ou plus simplement :
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]
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.
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
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 :
Et voici les requêtes :
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
@++
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![]()
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.![]()
Partager