在SQL中写个函数,急

iamclb 2003-09-11 02:34:24
在数据库中定义一个函数checkstatename,有一订单表indent中有一个checkstadeid子段,关联到一个审核状态表,可以是审核通过,审核拒绝,未审核三种状态。
一个订单又多人参加审核,只有全部人员审核通过才返回审核通过,这个函数怎么写?急!
...全文
58 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
sjw800614 2003-09-11
  • 打赏
  • 举报
回复
/*
函数功能:查询并且返回当前的审核状态
返回值 : tinyint
-1 通过审核
1 未通过审核
0 未审核
*/
CREAET FUNCTION fn_GetStatus(@ID int)
RETURNS TINGINT
AS

BEGIN
DECLARE @Status TINYINT
DECLARE @Count INT
--查找状态的的值
SELECT @Status=SUM(
CASE checkstadeid
WHEN '审核拒绝' TEHN 0
WHEN '审核通过' THEN 1
ELSE -1000 --此时的赋值,可以是 X
END )
FROM indent WHERE 主键=@ID
SELECT @COUNT=COUNT(*) FROM indent WHERE 主键=@ID

--判断状态的,并进行设置
IF @Status=@Count --全部通过
@Status=-1
ELSE
@Status=1

RETURN @Status
END

aierong 2003-09-11
  • 打赏
  • 举报
回复
create function checkstatename(@id varchar(1000))
returns varchar(100) as
begin
declare @flag varchar(100)
select * from 状态表 where checkstadeid=@id and 审核状态='通过'
if @@rowcount>0
select @flag='通过'
else
select @flag='未通过'
return @flag
end
niukl 2003-09-11
  • 打赏
  • 举报
回复
回复人: txlicenhe(马可&不做技术高手) ( ) 信誉:100 2003-09-11 14:41:00 得分:0


create function checkstatename (@checkstateid varchar(10))
returns bit
as
begin
if exists(select * from 审核状态表 where checkstateid =@checkstateid
and 状态 in ('审核拒绝','未审核') )
Return(0)
Else
Return(1)
end
Go

/* Usage:
Select dbo.checkstatename('10')
*/


Top

同意二楼的,顶
pengdali 2003-09-11
  • 打赏
  • 举报
回复
create function 得到状态(@订单号 int)
returns varchar(10)
as
begin
declare @a varchar(10)
if not exists(select 1 from 审核状态表 where 订单号=@订单号 and 状态 in ('拒绝','未审核'))
set @a='审核通过'
else
set @a='未审核通过'
return @a
end
txlicenhe 2003-09-11
  • 打赏
  • 举报
回复
create function checkstatename (@checkstateid varchar(10))
returns bit
as
begin
if exists(select * from 审核状态表 where checkstateid =@checkstateid
and 状态 in ('审核拒绝','未审核') )
Return(0)
Else
Return(1)
end
Go

/* Usage:
Select dbo.checkstatename('10')
*/

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧