一个SQL判断查询的问题

楼主
我是社区第868位番薯,欢迎点我头像关注我哦~
本帖最后由 亲爱的小Z 于 2012-2-13 17:37 编辑

现有表A、表B、表C,3个表,表A的ID字段与表B的ID字段关联,表B的BILL字段与表C的BILL字段关联
现在要查询A表的内容,条件是
如果表B的b字段等于3,那么表C的c字段必须等于1或者等于6,才可以返回A表的相关信息
如果表B的b字段不等于3,则返回A表的信息

请问这个查询语句怎么写?谢谢
分享扩散:

来自 2#
发表于 2012-2-13 13:51:55
select *
from
TA
left join TB on TA.X=TB.X --TB与TA之间的关联关系
left join TC on TB.X=TC.X --TB与TC之间的关联关系
where
TB.b <>3
and (TC.c=1 or TC.c=6)
来自 3#
发表于 2012-2-13 15:59:06
本帖最后由 蔡晓勇 于 2012-2-13 16:00 编辑
vikou 发表于 2012-2-13 14:48
建议你分开写好了,我看了头很大
写成3个sql或者你在网页代码其实也是要分开写的,并写上判断的
比如先写 ...


谢谢版主的关心
已经搞定了,原因是前面的有一个强制性左对齐写反了,所以数据变少了

我是把6张表做成一张视图的,所以比较麻烦,但是这样在拿fr做分析报表的时候就比较方便了


地板
发表于 2012-2-13 13:53:17
不知是否满足你的条件
5楼
发表于 2012-2-13 14:24:12
select *
from
TA
left join TB on TA.X=TB.X --TB与TA之间的关联关系
left join TC on TB.X=TC.X --TB与TC之间的关联关系
where
(TB.b<>3 or (TB.b=3 and (TC.c=1 or TC.c=6)))

刚查了资料,这样写可以了,谢谢nageqd 的回复
6楼
发表于 2012-2-13 14:33:00
不好意思,这样写还是不对,头疼了
7楼
发表于 2012-2-13 14:48:29
建议你分开写好了,我看了头很大
写成3个sql或者你在网页代码其实也是要分开写的,并写上判断的
比如先写
1select * from a,b,c
再写
select * from  b  where b <>3

,具体还是建议您重新整理思路,因为FR软件可以分开很多个数据集的
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

10回帖数 1关注人数 5337浏览人数
最后回复于:2012-2-14 08:11

返回顶部 返回列表