oracle两张表联合查询问题

有两张表:汇率表A汇率(a)有效起始时间(b)有效截止时间(c)0.16002012/8/110:51:152012/8/1410:51:150.15382012/8/1... 有两张表:
汇率表 A
汇率(a) 有效起始时间(b) 有效截止时间(c)
0.1600 2012/8/1 10:51:15 2012/8/14 10:51:15
0.1538 2012/8/15 9:55:41 2012/8/23 9:55:41
入库表 B
入库数量(a) 入库时间(b)
3 2012/7/20 15:41:12
2 2012/8/17 14:31:59
希望能够根据入库的时间得到相应的有效汇率、没有的就为0
效果如下:
入库数量(a) 入库时间(b) 汇率
3 2012/7/20 15:41:12 0
2 2012/8/17 14:31:59 0.1538

不知道这个该怎么写、希望得到大家的帮助~
展开
 我来答
我又强力了
推荐于2016-02-22 · TA获得超过802个赞
知道小有建树答主
回答量:1058
采纳率:0%
帮助的人:714万
展开全部
SELECT 入库数量,入库时间, MAX(汇率)
FROM (
SELECT B.入库数量 ,B.入库时间
,(CASE WHEN B.入库时间 BETWEEN A.有效起始时间 AND A. 有效截止时间
THEN A.汇率
ELSE 0
END) AS 汇率
FROM 入库表 B, 汇率表 A
) P1
GROUP BY 入库数量,入库时间
其中 用max 的地方用 min 或者 sum
一样的
占座专用ID
2012-08-22 · TA获得超过235个赞
知道小有建树答主
回答量:217
采纳率:0%
帮助的人:202万
展开全部
SELECT b.*, nvl(a.汇率,0) from b left outer join a on b.入库时间 between a.有效起始时间 and 有效截止时间
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
unitech2010
2012-08-22 · TA获得超过1062个赞
知道小有建树答主
回答量:1025
采纳率:100%
帮助的人:906万
展开全部
SELECT b.*, isnull(a.汇率,0) from a left outer join b on b.入库时间 between a.有效起始时间 and
有效截止时间
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2012-08-22
展开全部
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式