Unterabfrage hat mehr als 1 Wert zurückgegeben. Dies ist nicht zulässig, wenn die Unterabfrage =,! =, <, <=,>,> = Folgt oder wenn die Unterabfrage als Ausdruck verwendet wird
Ich habe eine gespeicherte Prozedur, dieselect * from book table
Unter Verwendung der Unterabfrage ist meine Abfrage
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)
Ich weiß, dass eine Unterabfrage mehr als eine Abfrage an die Hauptabfrage zurückgibt. Aber ich weiß nicht, wie ich diesen Fehler vermeiden kann. Kann mir jemand helfen?