挑战一下~看看这条SQL应该怎么写
有如下数据:
表 yuefen:
帐号 月份
m662280612 4
m662285226 4
m663100013 4
m663100025 4
m663100026 4
m663100089 4
m663100090 4
m663100096 4
m662280612 3
m662285226 3
m663100013 3
m663100025 3
m663100089 2
m663100090 2
m663100096 2
m662280612 2
m662285226 2
表 ziliao:
帐号 资料1 资料2
m662280612 资612 资612
m662285226 资5226 资5226
m663100013 资13 资13
m663100025 资025 资025
m663100026 资26 资26
m663100089 资331 资331
m663100090 资90 资90
m663100096 资96 资96
现在需要得到如下结果:
查找 yuefen 表中 月份 为4但月份不为2和3的账号,同时将账号与表 ziliao中的资料对应并显示。
这条SQL应该怎么写呢?
还有就是查找 yuefen 表中 月份 为2和3但月份不为4的账号,该如何写呢?
先谢谢各位了~
------解决方案--------------------select a.帐号,
b.资料1,
b.资料2,
from yuefen a
left join ziliao b on a.帐号=b.帐号
where a.月份 = 4 --a.月份 not in (2,3)
------解决方案--------------------1.
select a.帐号,
b.资料1,
b.资料2,
from yuefen a
left join ziliao b on a.帐号=b.帐号
where a.月份 = 4 and a.月份 not in (2,3)
2.
select a.帐号,
b.资料1,
b.资料2,
from yuefen a
left join ziliao b on a.帐号=b.帐号
where a.月份 <> 4 and a.月份 in (2,3)
------解决方案--------------------try:
select a.* from ziliao a left join (select * from yuefen where 月份=4) b
on a.帐号=b.帐号
select a.* from ziliao a left join (select * from yuefen where 月份=2 or 月份=3) b
on a.帐号=b.帐号
select a.* from ziliao a left join (select * from yuefen where 月份 in(2,3)) b
on a.帐号=b.帐号
------解决方案--------------------select a.帐号,a.月份,b.资料1,b.资料2
from yuefen a,ziliao b
where a.帐号=b.帐号 and a.月份=‘4’
select * from yuefen a where a.yuefen in( '2 ', '3 ')
------解决方案--------------------select a.* from ziliao a left join yuefen b
on a.帐号=b.帐号 where b.月份=4
select a.* from ziliao a left join yuefen b
on a.帐号=b.帐号 where b.月份=2 or b.月份=3
------解决方案-------------------- create table yuefen(帐号 varchar(20),月份 int)
insert yuefen select 'm662280612 ',4