21

select * from book tableサブクエリを使用して、クエリが次のストアドプロシージャを持っています

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)

サブクエリがメインクエリに複数のクエリを返すことは知っていますが、このエラーを回避する方法がわかりません。誰か助けてもらえますか?

4

4 に答える 4

4

以下のようにIN演算子を使用できます

select * from dbo.books where isbn IN
(select isbn from dbo.lending where lended_date between @fdate and @tdate)
于 2013-04-17T07:20:47.087 に答える