La sous-requête a renvoyé plus d'une valeur. Ceci n'est pas autorisé lorsque la sous-requête suit =,! =, & Lt;, & lt; =, & gt;, & gt; = ou lorsque la sous-requête est utilisée comme expression

J'ai une procédure stockée qui select * from book table , à l'aide de sous-requêtes ma requête est

USE [library]
GO

/****** Object:  StoredProcedure [dbo].[report_r_and_l]    Script Date: 04/17/2013 12:42:39 ******/

SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

ALTER procedure [dbo].[report_r_and_l]
@fdate date,
@tdate date,
@key varchar(1)
as

if(@key='r')

    select * 
    from dbo.books 
    where isbn =(select isbn from dbo.lending where (act between @fdate and @tdate) and (stat ='close'))

else if(@key='l')

    select * 
    from dbo.books 
    where isbn =(select isbn from dbo.lending where lended_date between @fdate and @tdate)

Je sais que sous-requête est de retour plus d'une requête de requête principale , Mais je ne sais pas comment faire pour éviter cette erreur, quelqu'un peut-il m'aider ?

source d'informationauteur Roshan