高分求SQL server语句:一个月中的数据缺少哪天的数据
表A里1990年1月1日数据有132条,1月2日数据有200条,。。。。。。。1月31日数据有230条。1990年1月份缺少那天的数据?sqlserver语句应该怎么写A...
表A里1990年1月1日数据有132条,
1月2日数据有200条,
。。。。。。。
1月31日数据有230条。
1990年1月份缺少那天的数据?sql server语句应该怎么写
A表结构:
字段年:v1
字段月:v2
字段日:v3
学生姓名:v4
学生年龄:v5 展开
1月2日数据有200条,
。。。。。。。
1月31日数据有230条。
1990年1月份缺少那天的数据?sql server语句应该怎么写
A表结构:
字段年:v1
字段月:v2
字段日:v3
学生姓名:v4
学生年龄:v5 展开
4个回答
2011-09-13
展开全部
缺少的那天在表中没有数据,因此只能挨个判断哪天有没有了,可以根据你的实际情况完善下面的代码:
declare @c int
set @c=1
while @c<=31
begin
if not exists(select top 1 v1 from table where v1='1990' and v2='1' and v3=cast(@c as nvarchar(2)))
print cast(@c as nvarchar(2)) +' not exists'
set @c=@c+1
end
declare @c int
set @c=1
while @c<=31
begin
if not exists(select top 1 v1 from table where v1='1990' and v2='1' and v3=cast(@c as nvarchar(2)))
print cast(@c as nvarchar(2)) +' not exists'
set @c=@c+1
end
展开全部
select * from v1,v2 ,v3,count(v4) as js into #ls from a
select '2009' as v1 ,'01' as v2, '01' as v3,0 as js into #ls2
declare @i int,@j bit
set @i=0
while @i<day(dateadd(mm,datediff(mm,0,'2009-01-01')+1,0)-1)
begin
insert into #ls2( v1,v2,v3,js ) VALUES ('2009','01','01',@i)
end
update #ls2 set #ls2.js=#ls1.js where #ls2.v1=#ls1.v1 and #ls1.v2=#ls2.v2 and #ls2.v3=#ls1.v3
select * from #ls2 where js=0
大体思路就是这样的 ,时间仓促,你可以去完善下。
select '2009' as v1 ,'01' as v2, '01' as v3,0 as js into #ls2
declare @i int,@j bit
set @i=0
while @i<day(dateadd(mm,datediff(mm,0,'2009-01-01')+1,0)-1)
begin
insert into #ls2( v1,v2,v3,js ) VALUES ('2009','01','01',@i)
end
update #ls2 set #ls2.js=#ls1.js where #ls2.v1=#ls1.v1 and #ls1.v2=#ls2.v2 and #ls2.v3=#ls1.v3
select * from #ls2 where js=0
大体思路就是这样的 ,时间仓促,你可以去完善下。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
一般系统都会设计一张日期表
如果有日期表的话就灰常简单了
如果有日期表的话就灰常简单了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |