Mam procedurę przechowywaną, która select * from book table
, używając sub zapytania, moje zapytanie jestPodzapytanie zwróciło więcej niż jedną wartość. Nie jest to dozwolone, gdy podzapytanie następuje po, =,! =, <,<=,>,> = lub gdy podkwerenda jest używana jako wyrażenie
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)
wiem kwerendy sub jest powrót więcej niż jednego zapytania do głównej zapytania, ale nie wiem, jak uniknąć tego błędu, może ktoś mi pomoże?
Apparently że 'select isbn' zwraca więcej niż jedną wartość. Możesz użyć 'where isbn IN (wybierz isbn ...' –