gpt4 book ai didi

c# - 当查询用作表达式时包含多个值

转载 作者:行者123 更新时间:2023-11-29 02:55:39 25 4
gpt4 key购买 nike

我有一张 table

tblTimeSlotInformation(用户名、员工姓名、日期(日期)、日期、开始时间(时间(7))、结束时间(时间(7))、时间段、主题、教室号)

如果 StartingTime 在已经存储的 StartingTime 和 EndingTime 之间,则无法插入数据。例如:13.30(StartingTime) 到 14.30(EndingTime) 时间存储在数据库中然后用户尝试插入 13:45(StartingTime) 到 15:45(EndingTIme) 但消息显示“这些时隙已经存在”

存储过程

CREATE Proc spStoreTimeSlotDetails        
@Username nvarchar(50),
@EmpName nvarchar(50),
@Date date,
@Day nvarchar(50),
@ST time(7),
@ET time(7),
@TimeSlot nvarchar(50),
@Topic nvarchar(50),
@ClassroomNo int
as
begin
--Declare @count int
Declare @ReturnCode int
Declare @MinuteDiff int
DECLARE @i int = 1
Declare @NewTime time(7)
Declare @CRN int
Declare @D date

set @ReturnCode=0
set @MinuteDiff=(select DATEDIFF(MINUTE,StartingTime,EndingTime) from tblTimeSlotDetails)
set @NewTime=(select StartingTime from tblTimeSlotDetails)
set @CRN=(Select ClassroomNo from tblTimeSlotDetails)
set @D=(select [Date] from tblTimeSlotDetails)

WHILE @i <= @MinuteDiff
BEGIN
set @NewTime=(select DATEADD(MINUTE,1,@NewTime) from tblTimeSlotDetails)
if(@CRN=@ClassroomNo and @D=@Date and @NewTime=@ST and @ST=)
Begin
set @ReturnCode=-1
break
end
else
Begin
set @ReturnCode=1
end
SET @i = @i + 1
End
if(@ReturnCode=1 or @ReturnCode=0)
begin
Insert into tblTimeSlotDetails values(@Username,@EmpName,@Date,@Day,@ST,@ET,@TimeSlot,@Topic,@ClassroomNo)
end
select @ReturnCode as ReturnValue
end

但是每次运行我的Asp.net c# application错误提示“子查询返回超过 1 个值。当子查询跟在 =、!=、<、<=、>、>= 或子查询用作表达式时,这是不允许的”

我应该如何编写查询?

最佳答案

"Error: Subquery returned more than 1 value.

可疑语句导致错误

set @NewTime=(select StartingTime from tblTimeSlotDetails)  

由于无法分配给单个变量的查询返回的多个结果,您遇到了问题,即 @NewTime 您可能需要获取具有 maximum 时间的行这可以使用 max() 函数。

set @NewTime=(select Max(StartingTime) from tblTimeSlotDetails)  

关于c# - 当查询用作表达式时包含多个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30859579/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com