Tôi có một thủ tục được lưu trữ select * from book table
, sử dụng truy vấn phụ truy vấn của tôiTruy vấn con trả về nhiều hơn 1 giá trị.Điều này không được phép khi truy vấn con sau =,! =, <,<=,>,> = hoặc khi truy vấn con được sử dụng làm biểu thức
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)
Tôi biết truy vấn phụ trả về nhiều truy vấn cho truy vấn chính, nhưng tôi không biết cách tránh lỗi này, bất kỳ ai có thể giúp tôi không?
Rõ ràng rằng 'select isbn' trả về nhiều hơn một giá trị. Bạn có thể sử dụng 'where isbn IN (chọn isbn ...' –