中易网

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

答案:2  悬赏:10  
解决时间 2021-02-22 00:05
假设有三个表如下
表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#配合查询的方法,小弟愚笨是在是想不出来了
最佳答案
是什么数据库?

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 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为例写的,其实基本就是日期那个转换的地方需要知道是什么数据库而已,其他地方不用改的
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
淘宝投诉卖家入口关闭还能再开吗
爱就进门怎么去啊,有知道地址的么
女孩肯给你摸胸部代表什么
我想在嘉兴开个店,请问我该投资什么项目比较
那本小说男主角的名字是道泉子
榆园路/延安路(路口)这个地址在什么地方,我
中文名取英文名 我的中文名叫陈瑶,想取一个
寻郫县自行车骑友
佳木斯市郊区西格木乡西格木村民委员会在什么
提问,火事场力三发动条件是什么,效果是什么
田忌赛马的出处
户县清华园住户的装的啥网
赛维洗衣·生活馆NSW-1637在什么地方啊,我要
吃货之家地址在什么地方,想过去办事
姑娘嫁出去了可以在娘生活吗
推荐资讯
桃李杯技巧组合哪个简单
请问QQ每天要登陆多少时间算一天?
王记烧鸡公我想知道这个在什么地方
溧阳体育舞蹈协会地址有知道的么?有点事想过
中文翻译过来有雨的英文名,有哪些
西郊轧钢厂我想知道这个在什么地方
自体脂肪脂肪丰丰太阳穴多少钱
篮球212战术联防心得体会,300字。
我现在十四岁长到一米八七,算是正常身高了吗
在番禺石基摆地摊的位置是需要按月租还是先到
海尔冰箱东营特约维修总代理电话是多少
才一个月就说over了 是为什么?
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?