CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VB >  数据库(包含打印,安装,报表)

最大值与最小值问题.

楼主wghshy(小乐)2005-05-30 19:30:00 在 VB / 数据库(包含打印,安装,报表) 提问

数据表如下:  
  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,同样会增加记录,这样就不正确了.  
   
  请高手指教. 问题点数:20、回复次数:9Top

1 楼lsp69(浪子神剑)回复于 2005-05-31 17:19:52 得分 1

是不是每条记录中都有一个最小字段?  
  Top

2 楼wghshy(小乐)回复于 2005-06-01 08:12:50 得分 0

对,每条记录中都有一个最小字段.  
  这个数据表的意思就是介于一个范围的话就有一个值与它对应.Top

3 楼flyingscv(zlj)回复于 2005-06-01 09:17:06 得分 17

各范围没有交叉吧  
   
  select   top   1   min_value,max_value   where   minvalue[<>]..   order   by   minvalue  
  取出来用代码比Top

4 楼wghshy(小乐)回复于 2005-06-01 09:21:48 得分 0

范围没有交叉.  
  但用户输入的时候有可能包含在已经存在的范围之间,也可能是在好几个范围之间,还有可能是包含了所有的范围.这些条件都要想进去.  
   
  老兄这样写好象达不到效果吧.  
  这样写的话只描述了用户输入的内容包含在已存在的范围的情况,没包含其它情况.Top

5 楼longshouwo(龙之爪)回复于 2005-06-01 09:34:22 得分 1

还没有看明白,你想手工增加还是自动增加字段?判断值又以什么为标准?没看懂你的思路Top

6 楼ping0117(不是我也不是她)回复于 2005-06-01 10:11:13 得分 1

不怎么明白啊!Top

7 楼wghshy(小乐)回复于 2005-06-01 10:12:38 得分 0

还没有看明白,你想手工增加还是自动增加字段?判断值又以什么为标准?没看懂你的思路  
  --------------------------------------------  
  当然是用户自己增加记录了.  
  判断的标准是如果用户输入的这个范围已经存在就提示,如果不存在这个范围就新增这个记录.Top

8 楼wghshy(小乐)回复于 2005-06-01 10:16:39 得分 0

这个数据表就是从多少到多少对应一个值.  
   
  用户新增记录的时候(也就是新增一个范围和对应的值),要先进行判断,如果这个范围已经在数据表中的话,当然不能添加进去.确定用户输入的范围与当前数据表中范围没有交叉就行了.Top

9 楼flyingscv(zlj)回复于 2005-06-02 09:05:36 得分 0

我的意思是先取出来用代码比,而不是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....  
  Top

相关问题

  • 最小值与最大值问题
  • 判断最大值最小值
  • 请问一段圆弧的最大值和最小值?
  • 如何设定变量的最大值和最小值???
  • 怎么对时间求最大值、最小值、平均值?
  • 从n个数中选出最大值和最小值
  • 关于求数组中最大值最小值的问题
  • 关于SQL语句CREAT SEQUCE,如何设置最大值和最小值?
  • 高分求教:根据坐标点求最大值和最小值的问题......
  • 用slq语句怎样实现从数据库取最大值?或最小值

关键词

  • 用户
  • 最小值
  • 数据表
  • 最大值
  • 范围
  • 记录
  • 值
  • 输入
  • 新增
  • 判断

得分解答快速导航

  • 帖主:wghshy
  • lsp69
  • flyingscv
  • longshouwo
  • ping0117

相关链接

  • Visual Basic类图书
  • Visual Basic类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo