求一个sql查询语句,查询数据库中三张表

假设有三个表如下表1:问题列表id,主键wtlx,varchar表2:受理表id,主键,外键(问题列表的id)chTimedatetime表3:受理结束表id,主键,外键... 假设有三个表如下
表1: 问题列表
id,主键
wtlx ,varchar

表2: 受理表
id,主键,外键(问题列表的id)
chTime datetime

表3 :受理结束表
id,主键,外键(问题列表的id)
jsTime datetime
wjlx ,varchar
其中问题列表 和受理结束表里面的wtlx 和 wjlx 字段是一样的,只是名称不一样

现在问题是这样子的
要取的数据是问题列表.wtlx 或受理结束表.wjlx
其中查询条件是 :
受理表的时间在2014/7/1 到2014/8/1之间并且
受理表.id = 问题列表.id
如果:
受理结束表.id = 受理表.id 并且 受理表.jsTime 在2014/7/1 到2014/8/1之间的话
取受理表.wjlx

上述条件不成立就去取问题列表.wtlx

大侠们求助了,数据是查询出来在c#里面用的,也可以提供一种c#配合查询的方法,小弟愚笨是在是想不出来了
展开
 我来答
badkano
2014-08-03 · 知道合伙人体育行家
badkano
知道合伙人体育行家
采纳数:144776 获赞数:885374
团长

向TA提问 私信TA
展开全部
select a.wtlx
from 问题列表 a,受理表 b 
where a.id=b.id 
and convert(varchar(10),b.chtime,120) between '2014-07-01' and '2014-08-01'
union all
select b.wjlx
from 问题列表 a,受理结束表 b 
where a.id=b.id 
and convert(varchar(10),b.jstime,120) between '2014-07-01' and '2014-08-01'

你看看是不是这个意思

你没说啥数据库,以sqlserver为例写的,其实基本就是日期那个转换的地方需要知道是什么数据库而已,其他地方不用改的

追问
那个  条件中是 上述如果不成立,但是第一个条件
受理表的时间在2014/7/1 到2014/8/1之间并且
受理表.id = 问题列表.id
必须满足,
可能我一开始表述有点问题

54 分钟前
条件中是 上述如果不成立,但是第一个条件
受理表的时间在2014/7/1 到2014/8/1之间并且
受理表.id = 问题列表.id
必须满足,
可能我一开始表述有点问题
bright_kong82
推荐于2017-09-13 · TA获得超过569个赞
知道小有建树答主
回答量:363
采纳率:0%
帮助的人:252万
展开全部
是什么数据库?

select
case
when 受理结束表.id = 受理表.id and 受理表.jsTime 在2014/7/1 到2014/8/1之间 then 受理表.wjlx
else
问题列表.wtlx
end
from
问题列表 A
left join 受理结束表 B

on A.id=B.id
left join 受理表 C

on A.id=C.id

你改下试试,case when中的表名称改为A,B,C,应该是这个样子了,即便我写的有问题,总体上你这个问题的解决方向也是这样的
更多追问追答
追问
那个  条件中是 上述如果不成立,但是第一个条件
受理表的时间在2014/7/1 到2014/8/1之间并且
受理表.id = 问题列表.id
必须满足,
可能我一开始表述有点问题
条件中是 上述如果不成立,但是第一个条件
受理表的时间在2014/7/1 到2014/8/1之间并且
受理表.id = 问题列表.id
必须满足,
可能我一开始表述有点问题
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式