最大值与最小值问题.

wghshy 2005-05-30 07:30:00
数据表如下:
ID MIN_Value MAX_Value My_Value
001 0 2 1.2 '即在0与2之间时我得到1.2的值.
001 5 7 1.5 '----5与7------------1.5-----
001 7 15 1.7 '----7与15-----------1.7-----
001 20 22 2.2 '----20与22----------2.2------

现在在这个数据表里面增加记录,如果已经存在界于 MIN_Value 与 MAX_Value 之间的值,则提示,否则新增记录.
原始记录是不规则的,想了好多办法都搞不定.

附我的思路:
通过记录查找,SQL语句是 select * from TB where (MIN_Value <= '" & Text1(0).Text & "' and MAX_Value > '" & Text1(0).Text & "')" & " or (MIN_Value < '" & Text1(1).Text & "' and MIN_Value >= '" & Text1(1).Text & "')
Text1(0)是最小值输入框,Text1(1).text是最大值输入框.
如果查找结果为FALSE,则新增记录.
这样做会有一个地方不正常,就是当最小值比所有的最小值都小和最大值比所有值都大时,查找结果也为FALSE,同样会增加记录,这样就不正确了.

请高手指教.
...全文
147 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
flyingscv 2005-06-02
  • 打赏
  • 举报
回复
我的意思是先取出来用代码比,而不是sql语句来比较
详细点:
比如:判断[x,y]
select max(max_v).. where maxv<=x
比如x=10可取的A=7,没有设置A=x
select min(min_v).. where minv>=A
比如A=7可取的B=7,没有设置B=y
if a<=x and b>=y then insert....
wghshy 2005-06-01
  • 打赏
  • 举报
回复
这个数据表就是从多少到多少对应一个值.

用户新增记录的时候(也就是新增一个范围和对应的值),要先进行判断,如果这个范围已经在数据表中的话,当然不能添加进去.确定用户输入的范围与当前数据表中范围没有交叉就行了.
wghshy 2005-06-01
  • 打赏
  • 举报
回复
还没有看明白,你想手工增加还是自动增加字段?判断值又以什么为标准?没看懂你的思路
--------------------------------------------
当然是用户自己增加记录了.
判断的标准是如果用户输入的这个范围已经存在就提示,如果不存在这个范围就新增这个记录.
ping0117 2005-06-01
  • 打赏
  • 举报
回复
不怎么明白啊!
longshouwo 2005-06-01
  • 打赏
  • 举报
回复
还没有看明白,你想手工增加还是自动增加字段?判断值又以什么为标准?没看懂你的思路
wghshy 2005-06-01
  • 打赏
  • 举报
回复
范围没有交叉.
但用户输入的时候有可能包含在已经存在的范围之间,也可能是在好几个范围之间,还有可能是包含了所有的范围.这些条件都要想进去.

老兄这样写好象达不到效果吧.
这样写的话只描述了用户输入的内容包含在已存在的范围的情况,没包含其它情况.
flyingscv 2005-06-01
  • 打赏
  • 举报
回复
各范围没有交叉吧

select top 1 min_value,max_value where minvalue[<>].. order by minvalue
取出来用代码比
wghshy 2005-06-01
  • 打赏
  • 举报
回复
对,每条记录中都有一个最小字段.
这个数据表的意思就是介于一个范围的话就有一个值与它对应.
浩方软件HFWMS 2005-05-31
  • 打赏
  • 举报
回复
是不是每条记录中都有一个最小字段?

1,216

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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