SQL功力很深的朋友进来看一下。

devecom 2004-10-17 09:42:23
谢谢您的光临!
我有这么2个表(简化了):
t_bmh: //保密号表
bmhstart int //起始保密号
bmhend int //结束保密号

t_point: //分数表
bmh int //保密号
point numeric //分数
{
意思是这样的:
我在t_point分数表中录入保密号及其分数,现在我需要查出没有录入的保密号,也就是有
断续的,比如我在t_bmh表中设置的保密号范围是:1--5000
而我在分数表中只录入了1,10,50,那么需要查找出没有录入的那些:2...9,11..49,51..5000
用什么sql能做到?
}
...全文
305 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
shxng 2004-10-18
  • 打赏
  • 举报
回复
zjcxc(邹建) 就是厉害呀!!
readersm68 2004-10-17
  • 打赏
  • 举报
回复
水平一般的才在这混。我说我自己啊:)
readersm68 2004-10-17
  • 打赏
  • 举报
回复
对于记录数少于1万条可以用啊。
hsmserver 2004-10-17
  • 打赏
  • 举报
回复
地主水平不错

你喜欢用游标?
看到你给很多人解答问题,都用道它
俺是向来不喜欢用它
除非万不得以
readersm68 2004-10-17
  • 打赏
  • 举报
回复
呵呵最后一行也有问题
SET @OutString=@OutString+CONVERT(varchar(10),@Num+1)+'..' CONVERT(varchar(10),@MaxNum)
readersm68 2004-10-17
  • 打赏
  • 举报
回复
IF @Num>@MinNum AND @Num<@MaxNum
BEGIN
SET @OutString = @OutString+CONVERT(varchar(10),@MinNum)+'..' CONVERT(varchar(10),@Num-1)
SET @MinNum=@Num+1 --这个地方写错了
END
readersm68 2004-10-17
  • 打赏
  • 举报
回复
利用存储过程。其他好的方法可能要去数据库开发问邹建了。

CREATE PROCEDURE bmhSp_StaticNum
@OutString varchar(1000) Out --定义输出值
AS
DECLARE
@Num integer,
@MaxNum integer,
@MinNum integer

Select @MaxNum=bmhend ,@MinNum=bmhstart
FROM t_bmh

SET @OutString =''

/*建立t_point表的游标Cursor*/
DECLARE t_point CURSOR LOCAL FOR
SELECT bmh
FROM t_point
Order by bmh
OPEN t_point
FETCH NEXT FROM t_pointINTO @Num
WHILE @@FETCH_STATUS = 0
BEGIN
IF @Num>@MinNum AND @Num<@MaxNum
BEGIN
SET @OutString = @OutString+CONVERT(varchar(10),@MinNum)+'..' CONVERT(varchar(10),@Num-1)
SET @Num=@MinNum+1
END
FETCH NEXT FROM t_point INTO @Num
END
CLOSE t_point
DEALLOCATE t_point
SET @OutString=@OutString+CONVERT(varchar(10),@Num)+'..' CONVERT(varchar(10),@MaxNum)

/*-----------------------------------------------------*/
GO


gwolf 2004-10-17
  • 打赏
  • 举报
回复
:(偶打字太慢了,提交才发现已经有正确答案了
gwolf 2004-10-17
  • 打赏
  • 举报
回复
不好意思,理解错了。
想了半天,你既然没有录入,怎么查呢?我想是不是把表中BMH字段值全取出来,做为集合,然后判断,集合[1..5000]中有,但取出来的里面没有的值。
devecom 2004-10-17
  • 打赏
  • 举报
回复
谢谢大家,解答请看:
http://community.csdn.net/Expert/topic/3464/3464535.xml?temp=.4031488
hsmserver 2004-10-17
  • 打赏
  • 举报
回复
楼主的意思是说有多少个保密号就要对应的生成多少个没有的范围?
devecom 2004-10-17
  • 打赏
  • 举报
回复
我想楼上的朋友还没完全理解我的意思。
你的sql只是查找一个表的id是否存在另外一个表的id,而我这里是一个范围。
gwolf 2004-10-17
  • 打赏
  • 举报
回复
SELECT pub_name
FROM publishers
WHERE pub_id NOT IN
(SELECT pub_id
FROM titles
WHERE type = 'business')
//使用not in,这个例子,表名及字段改一下,应该是你要的
随着通信电子技术的迅速发展,信息技术给家居行业产生了深远的影响,家居环境的智能化监控已经成为智能家居的一个重要的发展方向。人们逐渐对自己的生活提出一种更高的要求,他们需要一种智能化、可交互,并且融合现代创新科技的产品来改善他们的生活环境,使他们生活更加安全、舒适、便捷、智能。本文根据智能家居的发展背景和研究现状,并且从实用性和可行性角度出发,研究设计了一种基于STM32单片机的智能家居系统。该系统由一个多功能综合的技术系统组成,各个多功能子系统间具有协同配合能力。基于STM32单片机实现的功能子系统包括:智能温度检测,智能湿度检测,智能烟雾/火灾检测智能检测,无线传输,人机交互机构,风扇调节,报警模块。 整个系统分为前端51单片机采集板和后端STM32单片机接收板。 采集板使用DHT11温湿度传感器、MQ烟雾传感器完成室内家居环境的采集。然后通过nRFL24L01将采集到的数据发送给后端。接收板使用LCD1602完成数据显示、使用蜂鸣器模块报警,使用风扇驱动模块调节室内家居环境。本文完成了智能家居控制系统前端、后端软硬件的设计,使用Altium designer绘制了电路原理图,使用Keil C完成了51单片机和STM32单片机的编程与调试。 最后,对本文设计的基于STM32的智能家居控制系统进行部署调试。试验结果表明,该系统可成功应用在智能家居环境检测调节和火灾安全防护的领域,可提高家居生活智能化水平。

2,508

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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