i ai deux tablesutilisant (non) dans jointure interne SQL
1) tbluser 2) Userlogin
tbluser se composent de
nom d'utilisateur et email
et userlogin ressemble à
create table userlogin
(
username varchar(50),
[date] datetime
)
je veux choisir email de tbluser et valider userlogin (tableau 2)
je veux email des employés du tableau 1 qui ne sont pas dans le tableau 2 avec plage de dates sélectionnée
donc je créé une procédure
alter proc TMSautomail
@datefrm datetime,
@dateto datetime
as
begin
SELECT
tblUser.Email
from
tblUser
inner join
userlogin
on
tblUser.UserName not in userlogin.username
where userlogin.date between @datefrm and @dateto
end
il me montre l'erreur, quand je change la procédure à cette
alter proc TMSautomail
@datefrm datetime,
@dateto datetime
as
begin
SELECT
tblUser.Email
from
tblUser
left outer join
userlogin
on
tblUser.UserName = userlogin.username
where userlogin.date between @datefrm and @dateto and userlogin.username is null
end
la procédure retourne colonne vide,
je veux chercher email de la table un et valider avec le nom d'utilisateur qui ne sont pas dans le tableau 2,
ma deuxième table se compose d'une entrée
il doit renvoyer toutes les lignes de la table un
Il n'y a pas besoin de se joindre, ne pas en une sous-requête. –
je l'ai utilisé aussi mais quand j'ajoute where clause il montre toutes les lignes –
Ne montrez cette requête aussi –