Bonjour à tous.

En ce moment, je rencontre en souci sur la création d'une requête SQL. Ayant quelques notions dans ce domaine, j'ai réussi à me débrouiller mais là, je cale.

Ça à l'air simple à première vu, comparer les données de deux tables.

Je vais essayer d'être le plus clair possible

Voici mon souci ;

J'ai 2 tables, Tel et AD: voici les champs que je dois comparer et remonter les erreurs d'entrée.

AD contient => Accountname et TelephoneNumber.
Tel contient => Profi et No_annuaire.

Accountname et Profil ont des données identique (ex : FrDupontNi)
TelephoneNumber contient le numéro complet (ex : 03.83.07.65.42)
No_Annuaire contient les 4 derniers chiffre de TelephoneNumber (ex : 6542)

Au début, j'ai essayer de concaténer le numéro TelephoneNumber pour après le comparer à No_annuaire, avec la requête ci-dessous.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
USE Projet;
;SELECT
SUBSTRING(TelephoneNumber,13,2)+SUBSTRING(TelephoneNumber,16,2) 
from AD
J'obtiens bien le résultat escompté, les 4 derniers chiffres remontent.

Je cale pour la suite.

Je pensais qu'en créant une variable avec ma requête au-dessus et l'appeler dans une requête de comparaison :

Variable :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
DECLARE @ADNumber nvarchar(4)
SET @ADNumber =  'SELECT 
SUBSTRING(TelephoneNumber,13,2)+SUBSTRING(TelephoneNumber,16,2)
from AD' ;
Requête :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
SELECT @ADNumber, No_annuaire, Accountname
FROM Tel, AD
WHERE No_annuaire
NOT IN(
 SELECT @ADNumber
);
Mais j’obtiens pas le résultat voulu. J'ai essayé de rechercher sur le net ou dans des bouquins, j'ai pas trouvé de solution à mon cas, d’où ma présence ici

Sachant que je dois comparer les données contenu dans TelephoneNumber avec celle de No_annuaire. Et afficher les erreurs avec le compte utilisateur lié au numéro.

En vous remerciant d'avance pour votre aide apportée.