这个存储过程怎么写?~!《在线急等,解决立刻給分》

coolpony 2004-09-24 09:53:59
表tbl_A中有三个字段 A B C
对A B C三个字段各有一个阀值 DA DB DC

添加新记录时,当表为空的时候,先添一条(0,0,0)的记录,直接添加新记录。

以后添加新值的时候,如果表中最后一条记录对应的A B C 的任意字段的值和上一条记录的差值大于等于其阀值的时候,则用新值新增一条记录。
否则用新值改写最后一条记录。
...全文
159 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
coolpony 2004-09-24
  • 打赏
  • 举报
回复
试试先,成功就给分
Hahahahahaha 2004-09-24
  • 打赏
  • 举报
回复
and (a.a-b.a>=c.da or a.b-b.v>=c.db or a.c-b.c>=c.dc)
-->
and (a.a-b.a>=c.da or a.b-b.b>=c.db or a.c-b.c>=c.dc)
Hahahahahaha 2004-09-24
  • 打赏
  • 举报
回复
那就存储过程吧:

create proc test
@a ...
@b ...
@c ...
as

if not exists (select * from tbl_a)
begin
insert tbl_a(time,a,b,c) values('1900-1-1',0,0,0)
insert tbl_a(time,a,b,c) values(getdate(),@a,@b,@c)
return 0
end

if (select count(*) from tbl_a)=1 --楼主没说怎么处理,我胡乱猜
begin
insert tbl_a(time,a,b,c) values(getdate(),@a,@b,@c)
return 1
end

if exists (
select 1 from tbl_a a,tbl_a b,tbl_d c
where a.time=(select max(time) from tbl_a)
and b.time=(select max(time) from tbl_a where time<a.time)
and (a.a-b.a>=c.da or a.b-b.v>=c.db or a.c-b.c>=c.dc)
)
insert table_a(time,a,b,c) values(getdate(),@a,@b,@c)
else
update tbl_a
set time=getdate(),a=@a,b=@b,c=@c
where time=(select max(time) from tbl_a)
return 2

go


错了不管!

哈,哈哈,哈哈哈......
coolpony 2004-09-24
  • 打赏
  • 举报
回复
举个例子:
阀值

tbl_D
----------
DA DB DC

--------------------------< 第一次(YYY,a1,b1,c1)

tbl_A
-------------------
Time A B C
-------------------
XXX 0 0 0
YYY a1 b1 c1

---------------------------< 第二次(ZZZ,a2,b2,c2)
如果 (a1-0)<DA (b1-0)<DB (c1-0)<DC

tbl_A
-------------------
Time A B C
-------------------
XXX 0 0 0
ZZZ a2 b2 c2


如果 (a1-0)>=DA (b1-0)<DB (c1-0)<DC

tbl_A
-------------------
Time A B C
-------------------
XXX 0 0 0
YYY a1 b1 c1
ZZZ a2 b2 c2

zjcxc 元老 2004-09-24
  • 打赏
  • 举报
回复
看不明
Hahahahahaha 2004-09-24
  • 打赏
  • 举报
回复
提示:
1、用触发器
2、最后一条记录很不明确,建议加自增字段或者时间字段
3、阀值 DA DB DC最好在另一表存放


哈,哈哈,哈哈哈......

lsxaa 2004-09-24
  • 打赏
  • 举报
回复
有示例数据么
Hahahahahaha 2004-09-24
  • 打赏
  • 举报
回复
举例

哈,哈哈,哈哈哈......
coolpony 2004-09-24
  • 打赏
  • 举报
回复
给分

34,576

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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