SQL数据库中找出相应符合条件的记录
sql中有一表qwe,类似如下id月份物品月初月末101A12202A25303A53404A26501B12602B24703B52804B26物品A和B,2月的月初应...
sql中有一表qwe,类似如下
id 月份 物品 月初 月末
1 01 A 1 2
2 02 A 2 5
3 03 A 5 3
4 04 A 2 6
5 01 B 1 2
6 02 B 2 4
7 03 B 5 2
8 04 B 2 6
物品A和B,2月的月初应等于各自1月的月末,3月的月初应等于各自2月的月末,4月的月初应等于各自3月的月末,如此类推
如何在企业管理器或查询分析器中用sql语句找出某月的月初不等于上一个月的月末的记录,即要得出如下结果:
id 月份 物品 月初 月末
3 03 A 5 3
4 04 A 2 6
6 02 B 2 4
7 03 B 5 2 展开
id 月份 物品 月初 月末
1 01 A 1 2
2 02 A 2 5
3 03 A 5 3
4 04 A 2 6
5 01 B 1 2
6 02 B 2 4
7 03 B 5 2
8 04 B 2 6
物品A和B,2月的月初应等于各自1月的月末,3月的月初应等于各自2月的月末,4月的月初应等于各自3月的月末,如此类推
如何在企业管理器或查询分析器中用sql语句找出某月的月初不等于上一个月的月末的记录,即要得出如下结果:
id 月份 物品 月初 月末
3 03 A 5 3
4 04 A 2 6
6 02 B 2 4
7 03 B 5 2 展开
2个回答
展开全部
declare @tmp_month int,
@tmp_yuemo int,
@tmp_yuemo_pre int,
@tmp_yuechu int,
@tmp_count int
create table #tmp_qwe
(
month_no int
)
select @tmp_month=1
select @tmp_yuemo=0
select @tmp_yuemo_pre=0
select @tmp_count=count(*) from qwe
while tmp_month<@tmp_count
begin
select @tmp_yuechu=月初(字段) from qwe where 月份(转为数字型)=@tmp_month and 物品='A'
if @tmp_month>1 then
begin
select @tmp_yuemo=月末(字段) from qwe where 月份(转为数字型)=@tmp_month and 物品='A'
if @tmp_yuechu <> @tmp_yuemo_pre then
begin
insert into #tmp_qwe values(@tmp_month)
end
end
select @tmp_month=@tmp_month+1
select @tmp_yuemo_pre=@tmp_yuemo
end
select * from #tmp_qwe
drop table #tmp_qwe
相应的物品做一下改变
@tmp_yuemo int,
@tmp_yuemo_pre int,
@tmp_yuechu int,
@tmp_count int
create table #tmp_qwe
(
month_no int
)
select @tmp_month=1
select @tmp_yuemo=0
select @tmp_yuemo_pre=0
select @tmp_count=count(*) from qwe
while tmp_month<@tmp_count
begin
select @tmp_yuechu=月初(字段) from qwe where 月份(转为数字型)=@tmp_month and 物品='A'
if @tmp_month>1 then
begin
select @tmp_yuemo=月末(字段) from qwe where 月份(转为数字型)=@tmp_month and 物品='A'
if @tmp_yuechu <> @tmp_yuemo_pre then
begin
insert into #tmp_qwe values(@tmp_month)
end
end
select @tmp_month=@tmp_month+1
select @tmp_yuemo_pre=@tmp_yuemo
end
select * from #tmp_qwe
drop table #tmp_qwe
相应的物品做一下改变
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
假设月份是字符型,则用这样一条语句完成:
select * from qwe a left join qwe b on convert(int,a.月份)+1=convert(int,b.月份) and a.物品=b.物品 where a.月末!=b.月初
如果月份是整型的,则这样写
select * from qwe a left join qwe b on a.月份+1=b.月份 and a.物品=b.物品 where a.月末!=b.月初
select * from qwe a left join qwe b on convert(int,a.月份)+1=convert(int,b.月份) and a.物品=b.物品 where a.月末!=b.月初
如果月份是整型的,则这样写
select * from qwe a left join qwe b on a.月份+1=b.月份 and a.物品=b.物品 where a.月末!=b.月初
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询