当前位置:首页 » 编程语言 » sql查补缺失数据怎么查
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

sql查补缺失数据怎么查

发布时间: 2022-07-11 08:55:18

⑴ 如何使用sql语句查询连续编号中缺失的编号

declare@tbtable(myidint)
insert@
select*From@tb

SELECTnumberFROMmaster..spt_values
WHEREnumberBETWEEN(SELECTMIN(myid)FROM@tb)
AND(SELECTMAX(myid)FROM@tb)
ANDNOTEXISTS(SELECT*FROM@tbWHEREmyid=number)
ANDtype='p'

⑵ sqlserver 中,如何查询把缺少数据自动填补出来,下图中缺少2013-05-27 19:00:00.000 130.4560000000

  1. 问题分析:您要的结果是要每一小时一条记录,补充添写中间间隔一小时以上的记录。并且不另增加记录:

  2. 问题解决:找到每一条记录时间加1小时在表中不存在的记录,然后加一小时填入表中,不包括最后(最大的)的时间。

3.语句实现(两种方案):

以下语句可以在每一个缺少的数据后加入一小时后填入,但间隔更大(超过2小时后就不行了):

insert into tablename

select fieldtime=dateadd(hh,1,fieldtime),fieldnum from tablename a

where not exists(select 1 from tablename b where dateadd(hh,1,a.fieldtime)=b.fieldtime)

and a.fieldtime!=(select max(fieldtime) from tablename)--去掉最后的时间

以下方案可以完成补充间隔数小时的记录:将该语句循环执行,直到没有记录更改。

insert into tablename

select fieldtime=dateadd(hh,1,fieldtime),fieldnum from tablename a

where not exists(select 1 from tablename b where dateadd(hh,1,a.fieldtime)=b.fieldtime)

and a.fieldtime!=(select max(fieldtime) from tablename)--去掉最后的时间

while @@rowcount>0

select fieldtime=dateadd(hh,1,fieldtime),fieldnum from tablename a where not exists(select 1 from tablename b where dateadd(hh,1,a.fieldtime)=b.fieldtime) and a.fieldtime!=(select max(fieldtime) from tablename)

⑶ 在SQL数据库中如何查询某一年份类型所有案号中缺失的案号

首先要知道你的案号生成规则,比如按照你提供的案号,2015-XSI-0003-101,看这个案号,大概推测生成规则是
年-分类缩写-卷宗编号-案件流水号
你提的问题是,是否缺少案号,就是说,分类缩写、卷宗编号都不会缺少,至需要判断某一年中的案子,是不是有缺少案号的情况。
分析
1、按照 年-分类缩写-卷宗编号对案件进行分组计算count,然后取 年-分类缩写-卷宗编号下的最大案号,用count值与最大案号进行比对,count值一定是小于等于最大案号的,如果等于,则表示这个 年-分类缩写-卷宗编号下没有缺失的案子,如果小于,则表示有缺失的案子,
创建临时表1,存储 年-分类缩写-卷宗编号,最大编号的号码这两个字段,准备下一步处理。
2、创建临时表2,两个字段,第一个是 年-分类缩写-卷宗编号,第二个是案号,写一个mysql函数,或者用java代码写一个循环,从1开始到临时表1中保存的最大案号,将记录插入到临时表2中,意思就是说,临时表2中应该保存所有正确的案号,然后用主业务表跟临时表2关联,临时表2中字段为null的就是缺失的编号了。

⑷ SQL如何寻找缺失ID

Create Table TableName
(
ID int
)insert into TableName (ID) Values (1)
insert into TableName (ID) Values (2)
insert into TableName (ID) Values (3)
insert into TableName (ID) Values (4)
insert into TableName (ID) Values (9)
insert into TableName (ID) Values (10)
insert into TableName (ID) Values (11)
insert into TableName (ID) Values (19)
insert into TableName (ID) Values (20) Select Top 1 ID-1 From TableName Where ID-1 Not In ( Select ID From TableName ) Order By ID Desc--得到缺失ID中最大的一个,结果是:18Select Top 1 ID+1 From TableNamer Where ID+1 not in (Select ID From TableName) Order By ID Asc--得到缺失ID中最小的一个,结果是:5

⑸ sql 每天自动插入一条数据据,如有缺失,怎么遍历查看缺少哪一天数据呢

select A.[Date] from (
select Convert(varchar(10),getdate(),120) [Date]
union select Convert(varchar(10),getdate()-1,120)
union select Convert(varchar(10),getdate()-2,120)
union select Convert(varchar(10),getdate()-3,120)
union select Convert(varchar(10),getdate()-4,120)
union select Convert(varchar(10),getdate()-5,120)
union select Convert(varchar(10),getdate()-6,120)) A
left join [TABLE] B on A.[Date]=B.[Date]
where B.[Date] is null

⑹ 如何用sql语句查询出两张表中的缺失项

# select * from 表1 as t1 where not exists(select 1 from 表2 as t2 where t2.学号=t1.学号 and t2.试卷号=t1.试卷号)

⑺ 如何在sql查询 两个表指标缺少的部分

创建表及数据

createtabletable1
(aint,
bvarchar(3),
cvarchar(100))


createtabletable2
(avarchar(100))


insertintotable1values(2012,'001','计算机专业')
insertintotable1values(2012,'001','经济专业')
insertintotable1values(2012,'001','新闻专业')
insertintotable1values(2012,'002','计算机专业')
insertintotable1values(2012,'002','经济专业')
insertintotable1values(2012,'003','新闻专业')
insertintotable2values('计算机专业')
insertintotable2values('新闻专业')
insertintotable2values('地质专业')
insertintotable2values('经济专业')

运行


selects2.*from
(selectdistinctt1.at1a,t1.b,t2.at2afromtable1t1,table2t2)s2
wherenotexists
(select1fromtable1s1wheres1.a=s2.t1aands1.b=s2.bands1.c=s2.t2a)

结果

⑻ sql查补缺失数据

有点复杂,你现在直接有34点的时间? 还是34点这样的空缺时间还得重新生成呢?
要是现在直接有34点的时间的话。 那你就把 34点的表 跟2点表连接,然后写好连接条件。到时候取数据的时候 取 2表中的数据就行了

⑼ sql查找缺少的最小数字

SELECTcoalesce(min(num1),count(1)+1)FROMTAB1//如果正好是顺序排列,找出缺少的最后一个值
LEFTJOIN(
(SELECTmin(row_num)ASnum1//找出缺少的值
FROM(SELECTnum
,row_NUMBER()over(ORDERBYnumASC)ASrow_num
FROMTAB1)T1
WHEREt1.num!=t1.row_num)
)T2ON1=1;

如果TAB1中数字存在重复值,要先去重。 用(select distinct num from TAB1)TAB2 替换TAB1。


Good Luck!

⑽ SQL 怎么填补空缺的数据

看你的需求,应该是一个应用软件中的需求。

既然这样数据库中是不是应该有个日期表?
如果没有建议建一张表,存放日期

tabledate:
2009-01
2009-02
2009-03
2009-04
...
2009-12

那么向新表插入的时候可以以此日期表为准

insert into table2(id,date,amount)
select table1.id,table1.date,table1.amount
from tabledate left join table1 on tabledate.date=table1.date
order by table1.id,table1.date

恩,结果和你想要的是有一些差别。就是如果ID和余额如果与上一条记录相同(注意上面的order by),那么就为空。余额还有个特殊情况,就是为0的时候也是为null

那么在插入的时候可以判断如果为Null就插入一个特殊值
再根据这个特殊值写几个Update语句去更新。