2010-04-24 4 views
0

Je l'ai utilisé pour obtenir des données joint de deux tables sous le nom commun, commejoins- comment passer le paramètre dans la procédure stockée pour exécuter une requête de jointure

SELECT userValidity.UserName, userValidity.ValidFrom,userValidity.ValidUpTo,userValidity.TotalPoints, 
persons.SenderID 
FROM userValidity 
INNER JOIN persons 
ON userValidity.Username=tbl_persons.Username 

Mais je dois exécuter cette requête avec seulement la nom d'utilisateur que je transmets en tant que paramètre dans la procédure stockée.

Comment faire passer le nom d'utilisateur dans la procédure stockée dans cette jointure.

alter procedure GetNameIDUserInformation 
(
@user varchar(max) 
) 
as 
begin 

SELECT userValidity.UserName, userValidity.ValidFrom,userValidity.ValidUpTo,userValidity.TotalPoints, 
persons.SenderID 
FROM userValidity 
INNER JOIN persons 
ON userValidity.Username=tbl_persons.Username 
end 

Dans ce SP, où je dois passer le paramètre utilisateur pour obtenir la seule ligne de mon enregistrement utilisateur?

Répondre

1

Que se passe-t-il si vous ajoutez simplement WHERE userValidity.Username=user à la requête? :

alter procedure GetNameIDUserInformation (@user varchar(max)) as 
begin 
    SELECT userValidity.UserName, 
    userValidity.ValidFrom,userValidity.ValidUpTo, 
    userValidity.TotalPoints, persons.SenderID 
    FROM userValidity 
    INNER JOIN persons 
    ON userValidity.Username=tbl_persons.Username end 
    WHERE userValidity.Username=user 

Si vous obtenez une erreur de syntaxe autour user, pensez à utiliser un autre nom, comme user est un mot-clé réservé dans certains SGBDR.

+0

merci ... ça marche bien. – Innova

Questions connexes