Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Requette SQL -Select Distinct

4 réponses
Avatar
jb1
Bonjour,
J'utilise cette requettes SQL qui fonctionne bien mais je souhaiterai ne pas
extraire les doublons qui existe dans le champ : E-MAIL de la table Extract
Siebel vers la table Extract OUT
J'ai donc mis un distinct après le SELECT, mais marche pas !!
C'est uniquement ce champ que je veux faire un controle de doublons, pas sur
les autres ( je pense que le pb est là !!)
Si qq peut m'aider
Merci beaucoup

INSERT INTO [Extract OUT] ( REGION, [AGENCE COMMERCIALE], [Centre Profit],
SOCIETE, DEPT, [CODE POSTAL], VILLE, CONTACT, TELEPHONE, PRODUIT, [GS/PS],
[No DS(Requête 1 avec UnivDS)], [DATE CLOTURE DS], [STATUT DS], COUVERTURE,
[DS AVEC ACTIVITE TERRAIN], SERVICE, [E-MAIL] )

SELECT [Extract Siebel].REGION, [Extract Siebel].[AGENCE COMMERCIALE], [Code
Agence].[Centre Profit], [Extract Siebel].SOCIETE, [Extract Siebel].DEPT,
[Extract Siebel].[CODE POSTAL], [Extract Siebel].VILLE, [Extract
Siebel].CONTACT, [Extract Siebel].TELEPHONE, [Extract Siebel].PRODUIT,
[Extract Siebel].[GS/PS], [Extract Siebel].[No DS(Requête 1 avec UnivDS)],
[Extract Siebel].[DATE CLOTURE DS], [Extract Siebel].[STATUT DS], [Extract
Siebel].COUVERTURE, [Extract Siebel].[DS AVEC ACTIVITE TERRAIN], [Extract
Siebel].SERVICE, [Extract Siebel].[E-MAIL]

FROM [Extract Siebel]
INNER JOIN [Code Agence] ON [Extract Siebel].[AGENCE COMMERCIALE] = [Code
Agence].[Code Agence]

WHERE ((([Extract Siebel].[AGENCE COMMERCIALE]) Like "C*") AND (([Extract
Siebel].PRODUIT) Like "OXE*" Or ([Extract Siebel].PRODUIT) Like "4400*") AND
(([Extract Siebel].[STATUT DS]) Like "Close/Normal") AND (([Extract
Siebel].COUVERTURE) Like "Contrat") AND (([Extract Siebel].SERVICE) Like
"SUPPORT*") AND (([Extract Siebel].[E-MAIL]) Like "*@*.*") AND (([Extract
Siebel].[Famille DS]) Like "Maintenance") AND (([Extract Siebel].Groupe) Is
Null)) OR ((([Extract Siebel].[AGENCE COMMERCIALE]) Like "C*") AND
(([Extract Siebel].[GS/PS]) Like "4400*" Or ([Extract Siebel].[GS/PS]) Like
"OMNI*") AND (([Extract Siebel].[STATUT DS]) Like "Close/Normal") AND
(([Extract Siebel].COUVERTURE) Like "Contrat") AND (([Extract
Siebel].SERVICE) Like "SUPPORT*") AND (([Extract Siebel].[E-MAIL]) Like
"*@*.*") AND (([Extract Siebel].[Famille DS]) Like "Maintenance") AND
(([Extract Siebel].Groupe) Is Null));

4 réponses

Avatar
J-Pierre
Bonjour,

Le plus simple est sans doute de définir ton champ E-MAIL comme index sans doublons.

J-Pierre

"jb1" a écrit dans le message de news: 4478ed02$0$1597$
Bonjour,
J'utilise cette requettes SQL qui fonctionne bien mais je souhaiterai ne pas extraire les doublons qui existe dans le champ :
E-MAIL de la table Extract Siebel vers la table Extract OUT
J'ai donc mis un distinct après le SELECT, mais marche pas !!
C'est uniquement ce champ que je veux faire un controle de doublons, pas sur les autres ( je pense que le pb est là !!)
Si qq peut m'aider
Merci beaucoup

INSERT INTO [Extract OUT] ( REGION, [AGENCE COMMERCIALE], [Centre Profit], SOCIETE, DEPT, [CODE POSTAL], VILLE, CONTACT,
TELEPHONE, PRODUIT, [GS/PS], [No DS(Requête 1 avec UnivDS)], [DATE CLOTURE DS], [STATUT DS], COUVERTURE, [DS AVEC ACTIVITE
TERRAIN], SERVICE, [E-MAIL] )

SELECT [Extract Siebel].REGION, [Extract Siebel].[AGENCE COMMERCIALE], [Code Agence].[Centre Profit], [Extract Siebel].SOCIETE,
[Extract Siebel].DEPT, [Extract Siebel].[CODE POSTAL], [Extract Siebel].VILLE, [Extract Siebel].CONTACT, [Extract
Siebel].TELEPHONE, [Extract Siebel].PRODUIT, [Extract Siebel].[GS/PS], [Extract Siebel].[No DS(Requête 1 avec UnivDS)], [Extract
Siebel].[DATE CLOTURE DS], [Extract Siebel].[STATUT DS], [Extract Siebel].COUVERTURE, [Extract Siebel].[DS AVEC ACTIVITE TERRAIN],
[Extract Siebel].SERVICE, [Extract Siebel].[E-MAIL]

FROM [Extract Siebel]
INNER JOIN [Code Agence] ON [Extract Siebel].[AGENCE COMMERCIALE] = [Code Agence].[Code Agence]

WHERE ((([Extract Siebel].[AGENCE COMMERCIALE]) Like "C*") AND (([Extract Siebel].PRODUIT) Like "OXE*" Or ([Extract
Siebel].PRODUIT) Like "4400*") AND (([Extract Siebel].[STATUT DS]) Like "Close/Normal") AND (([Extract Siebel].COUVERTURE) Like
"Contrat") AND (([Extract Siebel].SERVICE) Like "SUPPORT*") AND (([Extract Siebel].[E-MAIL]) Like "*@*.*") AND (([Extract
Siebel].[Famille DS]) Like "Maintenance") AND (([Extract Siebel].Groupe) Is Null)) OR ((([Extract Siebel].[AGENCE COMMERCIALE])
Like "C*") AND (([Extract Siebel].[GS/PS]) Like "4400*" Or ([Extract Siebel].[GS/PS]) Like "OMNI*") AND (([Extract Siebel].[STATUT
DS]) Like "Close/Normal") AND (([Extract Siebel].COUVERTURE) Like "Contrat") AND (([Extract Siebel].SERVICE) Like "SUPPORT*") AND
(([Extract Siebel].[E-MAIL]) Like "*@*.*") AND (([Extract Siebel].[Famille DS]) Like "Maintenance") AND (([Extract Siebel].Groupe)
Is Null));



Avatar
Richard_35
Bonjour,

Et que veux-tu dans les autres champs des enregistrements en doublons ?

Par exemple :
Région E-mail
A
B

Quelle région faut-il sélectionner, en final ?

Bon courage,
Richard.

"jb1" a écrit dans le message de news:
4478ed02$0$1597$
Bonjour,
J'utilise cette requettes SQL qui fonctionne bien mais je souhaiterai ne
pas extraire les doublons qui existe dans le champ : E-MAIL de la table
Extract Siebel vers la table Extract OUT
J'ai donc mis un distinct après le SELECT, mais marche pas !!
C'est uniquement ce champ que je veux faire un controle de doublons, pas
sur les autres ( je pense que le pb est là !!)
Si qq peut m'aider
Merci beaucoup

INSERT INTO [Extract OUT] ( REGION, [AGENCE COMMERCIALE], [Centre Profit],
SOCIETE, DEPT, [CODE POSTAL], VILLE, CONTACT, TELEPHONE, PRODUIT, [GS/PS],
[No DS(Requête 1 avec UnivDS)], [DATE CLOTURE DS], [STATUT DS],
COUVERTURE, [DS AVEC ACTIVITE TERRAIN], SERVICE, [E-MAIL] )

SELECT [Extract Siebel].REGION, [Extract Siebel].[AGENCE COMMERCIALE],
[Code Agence].[Centre Profit], [Extract Siebel].SOCIETE, [Extract
Siebel].DEPT, [Extract Siebel].[CODE POSTAL], [Extract Siebel].VILLE,
[Extract Siebel].CONTACT, [Extract Siebel].TELEPHONE, [Extract
Siebel].PRODUIT, [Extract Siebel].[GS/PS], [Extract Siebel].[No DS(Requête
1 avec UnivDS)], [Extract Siebel].[DATE CLOTURE DS], [Extract
Siebel].[STATUT DS], [Extract Siebel].COUVERTURE, [Extract Siebel].[DS
AVEC ACTIVITE TERRAIN], [Extract Siebel].SERVICE, [Extract
Siebel].[E-MAIL]

FROM [Extract Siebel]
INNER JOIN [Code Agence] ON [Extract Siebel].[AGENCE COMMERCIALE] = [Code
Agence].[Code Agence]

WHERE ((([Extract Siebel].[AGENCE COMMERCIALE]) Like "C*") AND (([Extract
Siebel].PRODUIT) Like "OXE*" Or ([Extract Siebel].PRODUIT) Like "4400*")
AND (([Extract Siebel].[STATUT DS]) Like "Close/Normal") AND (([Extract
Siebel].COUVERTURE) Like "Contrat") AND (([Extract Siebel].SERVICE) Like
"SUPPORT*") AND (([Extract Siebel].[E-MAIL]) Like "*@*.*") AND (([Extract
Siebel].[Famille DS]) Like "Maintenance") AND (([Extract Siebel].Groupe)
Is Null)) OR ((([Extract Siebel].[AGENCE COMMERCIALE]) Like "C*") AND
(([Extract Siebel].[GS/PS]) Like "4400*" Or ([Extract Siebel].[GS/PS])
Like "OMNI*") AND (([Extract Siebel].[STATUT DS]) Like "Close/Normal") AND
(([Extract Siebel].COUVERTURE) Like "Contrat") AND (([Extract
Siebel].SERVICE) Like "SUPPORT*") AND (([Extract Siebel].[E-MAIL]) Like
"*@*.*") AND (([Extract Siebel].[Famille DS]) Like "Maintenance") AND
(([Extract Siebel].Groupe) Is Null));



Avatar
J-Pierre
Quand j'y pense, si tu veux ne pas sélectionner les doublons seulement pour cette requête, je te propose d'imbriquer 2 requêtes, ce
qui rendra ton code plus lisible:
Dans une première requête, tu sélectionnes les lignes qui n'ont pas de correspondance dans Extract Out, puis ta requête ajout
utilise cette première requête comme source.

J-Pierre
Avatar
jb1
Merci de vos réponses, je vais tester cette propal.
Car en fait c'est un fichier que je reçois (extract siebel) et que je veux
traiter selon les conditions définies et en plus et surtout sans doublons
pour le champ E-mail.
Par contre pas de choix spécifique si le doublon existe, on récupère au
moins un enregistrement.

Je vous tiens au courant
et encore merci
Bonne soirée



"J-Pierre" a écrit dans le message de
news:
Quand j'y pense, si tu veux ne pas sélectionner les doublons seulement
pour cette requête, je te propose d'imbriquer 2 requêtes, ce qui rendra
ton code plus lisible:
Dans une première requête, tu sélectionnes les lignes qui n'ont pas de
correspondance dans Extract Out, puis ta requête ajout utilise cette
première requête comme source.

J-Pierre