J'ai un logiciel qui scanne tous les eventlog des PC pour les enregistrer
dans une base SQL.
Mon problème est que parfois, le soft plante donc je dois le relancer et il
réenregistre les events donc création de doublons. Des doublons partiels
car lors du stokage d'un event dans sa base, il rajoute des informations lui
permettant de fonctionner, tel qu'un numéro d'enregistrement et un numéro
d'ID qui s'incrémentent automatiquement.
J'ai trouvé sur Internet un site qui explique des méthodes de suppression
des doublons
http://sql.developpez.com/doublons/
Mais cela bloque au niveau de la suppression !
DELETE
FROM T_DOUBLON T
WHERE T.COLUID > ANY
(SELECT COLUID
FROM T_DOUBLON T2
WHERE T.COLUID <> T2.COLUID
AND T.NUM = T2.NUM
AND T.NOM = T2.NOM
AND T.PRENOM = T2.PRENOM)
Cette partie me génére une erreur :
Server: Msg 170, Level 15, State 1, Line 33
Line 33: Incorrect syntax near 'T'.
Voici le code complet
CREATE TABLE T_DOUBLON
(NUM INT,
NOM VARCHAR(32),
PRENOM VARCHAR(16))
INSERT INTO T_DOUBLON VALUES (33, 'DUPONT', 'marc')
INSERT INTO T_DOUBLON VALUES (33, 'DUPONT', 'marc')
INSERT INTO T_DOUBLON VALUES (33, 'DUPONT', 'marc')
INSERT INTO T_DOUBLON VALUES (47, 'DUPOND', 'alain')
INSERT INTO T_DOUBLON VALUES (59, 'DUPOND', 'alain')
INSERT INTO T_DOUBLON VALUES (65, 'Dupond', 'Frédéric')
INSERT INTO T_DOUBLON VALUES (78, 'DUPOND', 'frédéric')
INSERT INTO T_DOUBLON VALUES (81, 'DUPOND', 'fréd')
INSERT INTO T_DOUBLON VALUES (99, 'DUPON', 'éric')
SELECT COUNT(*) AS NBR_DOUBLES, NUM, NOM, PRENOM
FROM T_DOUBLON
GROUP BY NUM, NOM, PRENOM
HAVING COUNT(*) > 1
ALTER TABLE T_DOUBLON
ADD COLUID uniqueidentifier
UPDATE T_DOUBLON
SET COLUID = newid()
DELETE
FROM T_DOUBLON T
WHERE T.COLUID > ANY
(SELECT COLUID
FROM T_DOUBLON T2
WHERE T.COLUID <> T2.COLUID
AND T.NUM = T2.NUM
AND T.NOM = T2.NOM
AND T.PRENOM = T2.PRENOM)
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Pascal Soveaux
"CD" wrote in message news:%
Bonjour,
J'ai un logiciel qui scanne tous les eventlog des PC pour les enregistrer dans une base SQL. Mon problème est que parfois, le soft plante donc je dois le relancer et il réenregistre les events donc création de doublons. Des doublons partiels car lors du stokage d'un event dans sa base, il rajoute des informations lui permettant de fonctionner, tel qu'un numéro d'enregistrement et un numéro d'ID qui s'incrémentent automatiquement.
J'ai trouvé sur Internet un site qui explique des méthodes de suppression des doublons http://sql.developpez.com/doublons/
Mais cela bloque au niveau de la suppression !
DELETE FROM T_DOUBLON T WHERE T.COLUID > ANY (SELECT COLUID FROM T_DOUBLON T2 WHERE T.COLUID <> T2.COLUID AND T.NUM = T2.NUM AND T.NOM = T2.NOM AND T.PRENOM = T2.PRENOM)
Cette partie me génére une erreur : Server: Msg 170, Level 15, State 1, Line 33 Line 33: Incorrect syntax near 'T'.
Voici le code complet
CREATE TABLE T_DOUBLON (NUM INT, NOM VARCHAR(32), PRENOM VARCHAR(16))
INSERT INTO T_DOUBLON VALUES (33, 'DUPONT', 'marc') INSERT INTO T_DOUBLON VALUES (33, 'DUPONT', 'marc') INSERT INTO T_DOUBLON VALUES (33, 'DUPONT', 'marc') INSERT INTO T_DOUBLON VALUES (47, 'DUPOND', 'alain') INSERT INTO T_DOUBLON VALUES (59, 'DUPOND', 'alain') INSERT INTO T_DOUBLON VALUES (65, 'Dupond', 'Frédéric') INSERT INTO T_DOUBLON VALUES (78, 'DUPOND', 'frédéric') INSERT INTO T_DOUBLON VALUES (81, 'DUPOND', 'fréd') INSERT INTO T_DOUBLON VALUES (99, 'DUPON', 'éric')
SELECT COUNT(*) AS NBR_DOUBLES, NUM, NOM, PRENOM FROM T_DOUBLON GROUP BY NUM, NOM, PRENOM HAVING COUNT(*) > 1
ALTER TABLE T_DOUBLON ADD COLUID uniqueidentifier
UPDATE T_DOUBLON SET COLUID = newid()
DELETE FROM T_DOUBLON T WHERE T.COLUID > ANY (SELECT COLUID FROM T_DOUBLON T2 WHERE T.COLUID <> T2.COLUID AND T.NUM = T2.NUM AND T.NOM = T2.NOM AND T.PRENOM = T2.PRENOM)
DELETE T_DOUBLON FROM T_DOUBLON T WHERE T.COLUID > ANY (SELECT T2.COLUID FROM T_DOUBLON T2 WHERE T.COLUID <> T2.COLUID AND T.NUM = T2.NUM AND T.NOM = T2.NOM AND T.PRENOM = T2.PRENOM)
ALTER TABLE T_DOUBLON DROP COLUMN COLUID
Je vous remercie pour votre aide.
Cordialement,
CD
Pascal
"CD" <closlsm@wanadoo.fr> wrote in message
news:%23FYWun0lFHA.1968@TK2MSFTNGP14.phx.gbl...
Bonjour,
J'ai un logiciel qui scanne tous les eventlog des PC pour les enregistrer
dans une base SQL.
Mon problème est que parfois, le soft plante donc je dois le relancer et
il
réenregistre les events donc création de doublons. Des doublons partiels
car lors du stokage d'un event dans sa base, il rajoute des informations
lui
permettant de fonctionner, tel qu'un numéro d'enregistrement et un numéro
d'ID qui s'incrémentent automatiquement.
J'ai trouvé sur Internet un site qui explique des méthodes de suppression
des doublons
http://sql.developpez.com/doublons/
Mais cela bloque au niveau de la suppression !
DELETE
FROM T_DOUBLON T
WHERE T.COLUID > ANY
(SELECT COLUID
FROM T_DOUBLON T2
WHERE T.COLUID <> T2.COLUID
AND T.NUM = T2.NUM
AND T.NOM = T2.NOM
AND T.PRENOM = T2.PRENOM)
Cette partie me génére une erreur :
Server: Msg 170, Level 15, State 1, Line 33
Line 33: Incorrect syntax near 'T'.
Voici le code complet
CREATE TABLE T_DOUBLON
(NUM INT,
NOM VARCHAR(32),
PRENOM VARCHAR(16))
INSERT INTO T_DOUBLON VALUES (33, 'DUPONT', 'marc')
INSERT INTO T_DOUBLON VALUES (33, 'DUPONT', 'marc')
INSERT INTO T_DOUBLON VALUES (33, 'DUPONT', 'marc')
INSERT INTO T_DOUBLON VALUES (47, 'DUPOND', 'alain')
INSERT INTO T_DOUBLON VALUES (59, 'DUPOND', 'alain')
INSERT INTO T_DOUBLON VALUES (65, 'Dupond', 'Frédéric')
INSERT INTO T_DOUBLON VALUES (78, 'DUPOND', 'frédéric')
INSERT INTO T_DOUBLON VALUES (81, 'DUPOND', 'fréd')
INSERT INTO T_DOUBLON VALUES (99, 'DUPON', 'éric')
SELECT COUNT(*) AS NBR_DOUBLES, NUM, NOM, PRENOM
FROM T_DOUBLON
GROUP BY NUM, NOM, PRENOM
HAVING COUNT(*) > 1
ALTER TABLE T_DOUBLON
ADD COLUID uniqueidentifier
UPDATE T_DOUBLON
SET COLUID = newid()
DELETE
FROM T_DOUBLON T
WHERE T.COLUID > ANY
(SELECT COLUID
FROM T_DOUBLON T2
WHERE T.COLUID <> T2.COLUID
AND T.NUM = T2.NUM
AND T.NOM = T2.NOM
AND T.PRENOM = T2.PRENOM)
DELETE T_DOUBLON
FROM T_DOUBLON T
WHERE T.COLUID > ANY
(SELECT T2.COLUID
FROM T_DOUBLON T2
WHERE T.COLUID <> T2.COLUID
AND T.NUM = T2.NUM
AND T.NOM = T2.NOM
AND T.PRENOM = T2.PRENOM)
J'ai un logiciel qui scanne tous les eventlog des PC pour les enregistrer dans une base SQL. Mon problème est que parfois, le soft plante donc je dois le relancer et il réenregistre les events donc création de doublons. Des doublons partiels car lors du stokage d'un event dans sa base, il rajoute des informations lui permettant de fonctionner, tel qu'un numéro d'enregistrement et un numéro d'ID qui s'incrémentent automatiquement.
J'ai trouvé sur Internet un site qui explique des méthodes de suppression des doublons http://sql.developpez.com/doublons/
Mais cela bloque au niveau de la suppression !
DELETE FROM T_DOUBLON T WHERE T.COLUID > ANY (SELECT COLUID FROM T_DOUBLON T2 WHERE T.COLUID <> T2.COLUID AND T.NUM = T2.NUM AND T.NOM = T2.NOM AND T.PRENOM = T2.PRENOM)
Cette partie me génére une erreur : Server: Msg 170, Level 15, State 1, Line 33 Line 33: Incorrect syntax near 'T'.
Voici le code complet
CREATE TABLE T_DOUBLON (NUM INT, NOM VARCHAR(32), PRENOM VARCHAR(16))
INSERT INTO T_DOUBLON VALUES (33, 'DUPONT', 'marc') INSERT INTO T_DOUBLON VALUES (33, 'DUPONT', 'marc') INSERT INTO T_DOUBLON VALUES (33, 'DUPONT', 'marc') INSERT INTO T_DOUBLON VALUES (47, 'DUPOND', 'alain') INSERT INTO T_DOUBLON VALUES (59, 'DUPOND', 'alain') INSERT INTO T_DOUBLON VALUES (65, 'Dupond', 'Frédéric') INSERT INTO T_DOUBLON VALUES (78, 'DUPOND', 'frédéric') INSERT INTO T_DOUBLON VALUES (81, 'DUPOND', 'fréd') INSERT INTO T_DOUBLON VALUES (99, 'DUPON', 'éric')
SELECT COUNT(*) AS NBR_DOUBLES, NUM, NOM, PRENOM FROM T_DOUBLON GROUP BY NUM, NOM, PRENOM HAVING COUNT(*) > 1
ALTER TABLE T_DOUBLON ADD COLUID uniqueidentifier
UPDATE T_DOUBLON SET COLUID = newid()
DELETE FROM T_DOUBLON T WHERE T.COLUID > ANY (SELECT COLUID FROM T_DOUBLON T2 WHERE T.COLUID <> T2.COLUID AND T.NUM = T2.NUM AND T.NOM = T2.NOM AND T.PRENOM = T2.PRENOM)
DELETE T_DOUBLON FROM T_DOUBLON T WHERE T.COLUID > ANY (SELECT T2.COLUID FROM T_DOUBLON T2 WHERE T.COLUID <> T2.COLUID AND T.NUM = T2.NUM AND T.NOM = T2.NOM AND T.PRENOM = T2.PRENOM)
ALTER TABLE T_DOUBLON DROP COLUMN COLUID
Je vous remercie pour votre aide.
Cordialement,
CD
Pascal
CD
Je vous remercie pour la réponse. J'ai vraiment besoin d'apprendre.
CD
"Pascal Soveaux" a écrit dans le message de news:
"CD" wrote in message news:% > Bonjour, > > J'ai un logiciel qui scanne tous les eventlog des PC pour les
enregistrer
> dans une base SQL. > Mon problème est que parfois, le soft plante donc je dois le relancer et > il > réenregistre les events donc création de doublons. Des doublons
partiels
> car lors du stokage d'un event dans sa base, il rajoute des informations > lui > permettant de fonctionner, tel qu'un numéro d'enregistrement et un
numéro
> d'ID qui s'incrémentent automatiquement. > > J'ai trouvé sur Internet un site qui explique des méthodes de
suppression
> des doublons > http://sql.developpez.com/doublons/ > > Mais cela bloque au niveau de la suppression ! > > DELETE > FROM T_DOUBLON T > WHERE T.COLUID > ANY > (SELECT COLUID > FROM T_DOUBLON T2 > WHERE T.COLUID <> T2.COLUID > AND T.NUM = T2.NUM > AND T.NOM = T2.NOM > AND T.PRENOM = T2.PRENOM) > > Cette partie me génére une erreur : > Server: Msg 170, Level 15, State 1, Line 33 > Line 33: Incorrect syntax near 'T'. > > Voici le code complet > > CREATE TABLE T_DOUBLON > (NUM INT, > NOM VARCHAR(32), > PRENOM VARCHAR(16)) > > > INSERT INTO T_DOUBLON VALUES (33, 'DUPONT', 'marc') > INSERT INTO T_DOUBLON VALUES (33, 'DUPONT', 'marc') > INSERT INTO T_DOUBLON VALUES (33, 'DUPONT', 'marc') > INSERT INTO T_DOUBLON VALUES (47, 'DUPOND', 'alain') > INSERT INTO T_DOUBLON VALUES (59, 'DUPOND', 'alain') > INSERT INTO T_DOUBLON VALUES (65, 'Dupond', 'Frédéric') > INSERT INTO T_DOUBLON VALUES (78, 'DUPOND', 'frédéric') > INSERT INTO T_DOUBLON VALUES (81, 'DUPOND', 'fréd') > INSERT INTO T_DOUBLON VALUES (99, 'DUPON', 'éric') > > > SELECT COUNT(*) AS NBR_DOUBLES, NUM, NOM, PRENOM > FROM T_DOUBLON > GROUP BY NUM, NOM, PRENOM > HAVING COUNT(*) > 1 > > > ALTER TABLE T_DOUBLON > ADD COLUID uniqueidentifier > > > UPDATE T_DOUBLON > SET COLUID = newid() > > > DELETE > FROM T_DOUBLON T > WHERE T.COLUID > ANY > (SELECT COLUID > FROM T_DOUBLON T2 > WHERE T.COLUID <> T2.COLUID > AND T.NUM = T2.NUM > AND T.NOM = T2.NOM > AND T.PRENOM = T2.PRENOM)
DELETE T_DOUBLON FROM T_DOUBLON T WHERE T.COLUID > ANY (SELECT T2.COLUID FROM T_DOUBLON T2 WHERE T.COLUID <> T2.COLUID AND T.NUM = T2.NUM AND T.NOM = T2.NOM AND T.PRENOM = T2.PRENOM)
> > > ALTER TABLE T_DOUBLON > DROP COLUMN COLUID > > > Je vous remercie pour votre aide. > > Cordialement, > > CD > > Pascal
Je vous remercie pour la réponse.
J'ai vraiment besoin d'apprendre.
CD
"Pascal Soveaux" <PSoveaux@ReplyToGroup.please> a écrit dans le message de
news:OlnF6w0lFHA.3380@TK2MSFTNGP12.phx.gbl...
"CD" <closlsm@wanadoo.fr> wrote in message
news:%23FYWun0lFHA.1968@TK2MSFTNGP14.phx.gbl...
> Bonjour,
>
> J'ai un logiciel qui scanne tous les eventlog des PC pour les
enregistrer
> dans une base SQL.
> Mon problème est que parfois, le soft plante donc je dois le relancer et
> il
> réenregistre les events donc création de doublons. Des doublons
partiels
> car lors du stokage d'un event dans sa base, il rajoute des informations
> lui
> permettant de fonctionner, tel qu'un numéro d'enregistrement et un
numéro
> d'ID qui s'incrémentent automatiquement.
>
> J'ai trouvé sur Internet un site qui explique des méthodes de
suppression
> des doublons
> http://sql.developpez.com/doublons/
>
> Mais cela bloque au niveau de la suppression !
>
> DELETE
> FROM T_DOUBLON T
> WHERE T.COLUID > ANY
> (SELECT COLUID
> FROM T_DOUBLON T2
> WHERE T.COLUID <> T2.COLUID
> AND T.NUM = T2.NUM
> AND T.NOM = T2.NOM
> AND T.PRENOM = T2.PRENOM)
>
> Cette partie me génére une erreur :
> Server: Msg 170, Level 15, State 1, Line 33
> Line 33: Incorrect syntax near 'T'.
>
> Voici le code complet
>
> CREATE TABLE T_DOUBLON
> (NUM INT,
> NOM VARCHAR(32),
> PRENOM VARCHAR(16))
>
>
> INSERT INTO T_DOUBLON VALUES (33, 'DUPONT', 'marc')
> INSERT INTO T_DOUBLON VALUES (33, 'DUPONT', 'marc')
> INSERT INTO T_DOUBLON VALUES (33, 'DUPONT', 'marc')
> INSERT INTO T_DOUBLON VALUES (47, 'DUPOND', 'alain')
> INSERT INTO T_DOUBLON VALUES (59, 'DUPOND', 'alain')
> INSERT INTO T_DOUBLON VALUES (65, 'Dupond', 'Frédéric')
> INSERT INTO T_DOUBLON VALUES (78, 'DUPOND', 'frédéric')
> INSERT INTO T_DOUBLON VALUES (81, 'DUPOND', 'fréd')
> INSERT INTO T_DOUBLON VALUES (99, 'DUPON', 'éric')
>
>
> SELECT COUNT(*) AS NBR_DOUBLES, NUM, NOM, PRENOM
> FROM T_DOUBLON
> GROUP BY NUM, NOM, PRENOM
> HAVING COUNT(*) > 1
>
>
> ALTER TABLE T_DOUBLON
> ADD COLUID uniqueidentifier
>
>
> UPDATE T_DOUBLON
> SET COLUID = newid()
>
>
> DELETE
> FROM T_DOUBLON T
> WHERE T.COLUID > ANY
> (SELECT COLUID
> FROM T_DOUBLON T2
> WHERE T.COLUID <> T2.COLUID
> AND T.NUM = T2.NUM
> AND T.NOM = T2.NOM
> AND T.PRENOM = T2.PRENOM)
DELETE T_DOUBLON
FROM T_DOUBLON T
WHERE T.COLUID > ANY
(SELECT T2.COLUID
FROM T_DOUBLON T2
WHERE T.COLUID <> T2.COLUID
AND T.NUM = T2.NUM
AND T.NOM = T2.NOM
AND T.PRENOM = T2.PRENOM)
>
>
> ALTER TABLE T_DOUBLON
> DROP COLUMN COLUID
>
>
> Je vous remercie pour votre aide.
>
> Cordialement,
>
> CD
>
>
Pascal
Je vous remercie pour la réponse. J'ai vraiment besoin d'apprendre.
CD
"Pascal Soveaux" a écrit dans le message de news:
"CD" wrote in message news:% > Bonjour, > > J'ai un logiciel qui scanne tous les eventlog des PC pour les
enregistrer
> dans une base SQL. > Mon problème est que parfois, le soft plante donc je dois le relancer et > il > réenregistre les events donc création de doublons. Des doublons
partiels
> car lors du stokage d'un event dans sa base, il rajoute des informations > lui > permettant de fonctionner, tel qu'un numéro d'enregistrement et un
numéro
> d'ID qui s'incrémentent automatiquement. > > J'ai trouvé sur Internet un site qui explique des méthodes de
suppression
> des doublons > http://sql.developpez.com/doublons/ > > Mais cela bloque au niveau de la suppression ! > > DELETE > FROM T_DOUBLON T > WHERE T.COLUID > ANY > (SELECT COLUID > FROM T_DOUBLON T2 > WHERE T.COLUID <> T2.COLUID > AND T.NUM = T2.NUM > AND T.NOM = T2.NOM > AND T.PRENOM = T2.PRENOM) > > Cette partie me génére une erreur : > Server: Msg 170, Level 15, State 1, Line 33 > Line 33: Incorrect syntax near 'T'. > > Voici le code complet > > CREATE TABLE T_DOUBLON > (NUM INT, > NOM VARCHAR(32), > PRENOM VARCHAR(16)) > > > INSERT INTO T_DOUBLON VALUES (33, 'DUPONT', 'marc') > INSERT INTO T_DOUBLON VALUES (33, 'DUPONT', 'marc') > INSERT INTO T_DOUBLON VALUES (33, 'DUPONT', 'marc') > INSERT INTO T_DOUBLON VALUES (47, 'DUPOND', 'alain') > INSERT INTO T_DOUBLON VALUES (59, 'DUPOND', 'alain') > INSERT INTO T_DOUBLON VALUES (65, 'Dupond', 'Frédéric') > INSERT INTO T_DOUBLON VALUES (78, 'DUPOND', 'frédéric') > INSERT INTO T_DOUBLON VALUES (81, 'DUPOND', 'fréd') > INSERT INTO T_DOUBLON VALUES (99, 'DUPON', 'éric') > > > SELECT COUNT(*) AS NBR_DOUBLES, NUM, NOM, PRENOM > FROM T_DOUBLON > GROUP BY NUM, NOM, PRENOM > HAVING COUNT(*) > 1 > > > ALTER TABLE T_DOUBLON > ADD COLUID uniqueidentifier > > > UPDATE T_DOUBLON > SET COLUID = newid() > > > DELETE > FROM T_DOUBLON T > WHERE T.COLUID > ANY > (SELECT COLUID > FROM T_DOUBLON T2 > WHERE T.COLUID <> T2.COLUID > AND T.NUM = T2.NUM > AND T.NOM = T2.NOM > AND T.PRENOM = T2.PRENOM)
DELETE T_DOUBLON FROM T_DOUBLON T WHERE T.COLUID > ANY (SELECT T2.COLUID FROM T_DOUBLON T2 WHERE T.COLUID <> T2.COLUID AND T.NUM = T2.NUM AND T.NOM = T2.NOM AND T.PRENOM = T2.PRENOM)
> > > ALTER TABLE T_DOUBLON > DROP COLUMN COLUID > > > Je vous remercie pour votre aide. > > Cordialement, > > CD > > Pascal
Raymond Mercier
Bonjour,
Ci joint l'URL de LogManager, produit freeware que l'on développe : http://lmcr.free.fr
Ce produit est chargé de faire la collecte de messages de log, et de les archiver dans une base de données. Les bases de données supportées sont SQL Server et MySQL.
De plus, et c'est pourquoi je répond au thread, il comporte un composant, EventLog, qui s'installe sur une machine Microsoft pour la collecte et la remontée des eventlog Microsoft.
LogManager team Raymond
"CD" a écrit dans le message de news: %
Bonjour,
J'ai un logiciel qui scanne tous les eventlog des PC pour les enregistrer dans une base SQL. Mon problème est que parfois, le soft plante donc je dois le relancer et il réenregistre les events donc création de doublons. Des doublons partiels car lors du stokage d'un event dans sa base, il rajoute des informations lui permettant de fonctionner, tel qu'un numéro d'enregistrement et un numéro d'ID qui s'incrémentent automatiquement.
J'ai trouvé sur Internet un site qui explique des méthodes de suppression des doublons http://sql.developpez.com/doublons/
Mais cela bloque au niveau de la suppression !
DELETE FROM T_DOUBLON T WHERE T.COLUID > ANY (SELECT COLUID FROM T_DOUBLON T2 WHERE T.COLUID <> T2.COLUID AND T.NUM = T2.NUM AND T.NOM = T2.NOM AND T.PRENOM = T2.PRENOM)
Cette partie me génére une erreur : Server: Msg 170, Level 15, State 1, Line 33 Line 33: Incorrect syntax near 'T'.
Voici le code complet
CREATE TABLE T_DOUBLON (NUM INT, NOM VARCHAR(32), PRENOM VARCHAR(16))
INSERT INTO T_DOUBLON VALUES (33, 'DUPONT', 'marc') INSERT INTO T_DOUBLON VALUES (33, 'DUPONT', 'marc') INSERT INTO T_DOUBLON VALUES (33, 'DUPONT', 'marc') INSERT INTO T_DOUBLON VALUES (47, 'DUPOND', 'alain') INSERT INTO T_DOUBLON VALUES (59, 'DUPOND', 'alain') INSERT INTO T_DOUBLON VALUES (65, 'Dupond', 'Frédéric') INSERT INTO T_DOUBLON VALUES (78, 'DUPOND', 'frédéric') INSERT INTO T_DOUBLON VALUES (81, 'DUPOND', 'fréd') INSERT INTO T_DOUBLON VALUES (99, 'DUPON', 'éric')
SELECT COUNT(*) AS NBR_DOUBLES, NUM, NOM, PRENOM FROM T_DOUBLON GROUP BY NUM, NOM, PRENOM HAVING COUNT(*) > 1
ALTER TABLE T_DOUBLON ADD COLUID uniqueidentifier
UPDATE T_DOUBLON SET COLUID = newid()
DELETE FROM T_DOUBLON T WHERE T.COLUID > ANY (SELECT COLUID FROM T_DOUBLON T2 WHERE T.COLUID <> T2.COLUID AND T.NUM = T2.NUM AND T.NOM = T2.NOM AND T.PRENOM = T2.PRENOM)
ALTER TABLE T_DOUBLON DROP COLUMN COLUID
Je vous remercie pour votre aide.
Cordialement,
CD
Bonjour,
Ci joint l'URL de LogManager, produit freeware que l'on développe :
http://lmcr.free.fr
Ce produit est chargé de faire la collecte de messages de log, et de les
archiver dans une base de données. Les bases de données supportées sont SQL
Server et MySQL.
De plus, et c'est pourquoi je répond au thread, il comporte un composant,
EventLog, qui s'installe sur une machine Microsoft pour la collecte et la
remontée des eventlog Microsoft.
LogManager team
Raymond
"CD" <closlsm@wanadoo.fr> a écrit dans le message de news:
%23FYWun0lFHA.1968@TK2MSFTNGP14.phx.gbl...
Bonjour,
J'ai un logiciel qui scanne tous les eventlog des PC pour les enregistrer
dans une base SQL.
Mon problème est que parfois, le soft plante donc je dois le relancer et
il
réenregistre les events donc création de doublons. Des doublons partiels
car lors du stokage d'un event dans sa base, il rajoute des informations
lui
permettant de fonctionner, tel qu'un numéro d'enregistrement et un numéro
d'ID qui s'incrémentent automatiquement.
J'ai trouvé sur Internet un site qui explique des méthodes de suppression
des doublons
http://sql.developpez.com/doublons/
Mais cela bloque au niveau de la suppression !
DELETE
FROM T_DOUBLON T
WHERE T.COLUID > ANY
(SELECT COLUID
FROM T_DOUBLON T2
WHERE T.COLUID <> T2.COLUID
AND T.NUM = T2.NUM
AND T.NOM = T2.NOM
AND T.PRENOM = T2.PRENOM)
Cette partie me génére une erreur :
Server: Msg 170, Level 15, State 1, Line 33
Line 33: Incorrect syntax near 'T'.
Voici le code complet
CREATE TABLE T_DOUBLON
(NUM INT,
NOM VARCHAR(32),
PRENOM VARCHAR(16))
INSERT INTO T_DOUBLON VALUES (33, 'DUPONT', 'marc')
INSERT INTO T_DOUBLON VALUES (33, 'DUPONT', 'marc')
INSERT INTO T_DOUBLON VALUES (33, 'DUPONT', 'marc')
INSERT INTO T_DOUBLON VALUES (47, 'DUPOND', 'alain')
INSERT INTO T_DOUBLON VALUES (59, 'DUPOND', 'alain')
INSERT INTO T_DOUBLON VALUES (65, 'Dupond', 'Frédéric')
INSERT INTO T_DOUBLON VALUES (78, 'DUPOND', 'frédéric')
INSERT INTO T_DOUBLON VALUES (81, 'DUPOND', 'fréd')
INSERT INTO T_DOUBLON VALUES (99, 'DUPON', 'éric')
SELECT COUNT(*) AS NBR_DOUBLES, NUM, NOM, PRENOM
FROM T_DOUBLON
GROUP BY NUM, NOM, PRENOM
HAVING COUNT(*) > 1
ALTER TABLE T_DOUBLON
ADD COLUID uniqueidentifier
UPDATE T_DOUBLON
SET COLUID = newid()
DELETE
FROM T_DOUBLON T
WHERE T.COLUID > ANY
(SELECT COLUID
FROM T_DOUBLON T2
WHERE T.COLUID <> T2.COLUID
AND T.NUM = T2.NUM
AND T.NOM = T2.NOM
AND T.PRENOM = T2.PRENOM)
Ci joint l'URL de LogManager, produit freeware que l'on développe : http://lmcr.free.fr
Ce produit est chargé de faire la collecte de messages de log, et de les archiver dans une base de données. Les bases de données supportées sont SQL Server et MySQL.
De plus, et c'est pourquoi je répond au thread, il comporte un composant, EventLog, qui s'installe sur une machine Microsoft pour la collecte et la remontée des eventlog Microsoft.
LogManager team Raymond
"CD" a écrit dans le message de news: %
Bonjour,
J'ai un logiciel qui scanne tous les eventlog des PC pour les enregistrer dans une base SQL. Mon problème est que parfois, le soft plante donc je dois le relancer et il réenregistre les events donc création de doublons. Des doublons partiels car lors du stokage d'un event dans sa base, il rajoute des informations lui permettant de fonctionner, tel qu'un numéro d'enregistrement et un numéro d'ID qui s'incrémentent automatiquement.
J'ai trouvé sur Internet un site qui explique des méthodes de suppression des doublons http://sql.developpez.com/doublons/
Mais cela bloque au niveau de la suppression !
DELETE FROM T_DOUBLON T WHERE T.COLUID > ANY (SELECT COLUID FROM T_DOUBLON T2 WHERE T.COLUID <> T2.COLUID AND T.NUM = T2.NUM AND T.NOM = T2.NOM AND T.PRENOM = T2.PRENOM)
Cette partie me génére une erreur : Server: Msg 170, Level 15, State 1, Line 33 Line 33: Incorrect syntax near 'T'.
Voici le code complet
CREATE TABLE T_DOUBLON (NUM INT, NOM VARCHAR(32), PRENOM VARCHAR(16))
INSERT INTO T_DOUBLON VALUES (33, 'DUPONT', 'marc') INSERT INTO T_DOUBLON VALUES (33, 'DUPONT', 'marc') INSERT INTO T_DOUBLON VALUES (33, 'DUPONT', 'marc') INSERT INTO T_DOUBLON VALUES (47, 'DUPOND', 'alain') INSERT INTO T_DOUBLON VALUES (59, 'DUPOND', 'alain') INSERT INTO T_DOUBLON VALUES (65, 'Dupond', 'Frédéric') INSERT INTO T_DOUBLON VALUES (78, 'DUPOND', 'frédéric') INSERT INTO T_DOUBLON VALUES (81, 'DUPOND', 'fréd') INSERT INTO T_DOUBLON VALUES (99, 'DUPON', 'éric')
SELECT COUNT(*) AS NBR_DOUBLES, NUM, NOM, PRENOM FROM T_DOUBLON GROUP BY NUM, NOM, PRENOM HAVING COUNT(*) > 1
ALTER TABLE T_DOUBLON ADD COLUID uniqueidentifier
UPDATE T_DOUBLON SET COLUID = newid()
DELETE FROM T_DOUBLON T WHERE T.COLUID > ANY (SELECT COLUID FROM T_DOUBLON T2 WHERE T.COLUID <> T2.COLUID AND T.NUM = T2.NUM AND T.NOM = T2.NOM AND T.PRENOM = T2.PRENOM)