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
展开
 我来答
wwllbbfat
2008-04-20 · TA获得超过1946个赞
知道小有建树答主
回答量:661
采纳率:0%
帮助的人:402万
展开全部
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
相应的物品做一下改变
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
WHITE_WIN
2008-04-20 · TA获得超过6111个赞
知道大有可为答主
回答量:3759
采纳率:50%
帮助的人:1891万
展开全部
假设月份是字符型,则用这样一条语句完成:
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.月初
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式