假设有三个表如下
表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#配合查询的方法,小弟愚笨是在是想不出来了
求一个sql查询语句,查询数据库中三张表
答案:2 悬赏:10
解决时间 2021-02-22 00:05
- 提问者网友:低唤何为爱
- 2021-02-21 05:20
最佳答案
- 二级知识专家网友:温柔刺客
- 2021-02-21 05:27
是什么数据库?
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,应该是这个样子了,即便我写的有问题,总体上你这个问题的解决方向也是这样的
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,应该是这个样子了,即便我写的有问题,总体上你这个问题的解决方向也是这样的
全部回答
- 1楼网友:温柔刺客
- 2021-02-21 05:38
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为例写的,其实基本就是日期那个转换的地方需要知道是什么数据库而已,其他地方不用改的
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯