查看: 454|回复: 7

[讨论] 请教一个关于判断的SQL

[复制链接]
认证徽章
论坛徽章:
0
发表于 2018-9-13 16:17 | 显示全部楼层 |阅读模式
现在有2张表数据如下:

A表数据
  a      sal    comm
  001    500    200
  002    666    200
  003    777    100

B表数据
  a   b     c      d
  001 sal   200   1000
  001 comm  100   500
  002 sal   800   999  
  002 comm  100   400
  003 sal   66    888
  003 comm  222   666

需求做一查询,要求如下显示:(若X的数值在B.c和B.d的范围内则显示1,不在则显示0)
A.a B.b X B.b X
举例:
001 sal 1 comm 1
002 sal 0 comm 1
003 sal 1 comm 0
QQ图片20180913161601.png
认证徽章
论坛徽章:
0
发表于 2018-9-13 16:17 | 显示全部楼层
找人帮忙

使用道具 举报

回复
认证徽章
论坛徽章:
0
发表于 2018-9-13 16:28 | 显示全部楼层
有人么

使用道具 举报

回复
认证徽章
论坛徽章:
0
发表于 2018-9-13 16:58 | 显示全部楼层

使用道具 举报

回复
认证徽章
论坛徽章:
0
发表于 2018-9-13 17:05 | 显示全部楼层
写错了,A表的a字段和B表的a字段名字不一样,是值相等

使用道具 举报

回复
求职 : 数据库管理员
认证徽章
论坛徽章:
223
日产
日期:2014-03-13 11:19:58生肖徽章2007版:虎
日期:2014-03-03 15:05:362009新春纪念徽章
日期:2014-03-06 16:42:45ITPUB8周年纪念徽章
日期:2014-03-07 10:17:312010新春纪念徽章
日期:2014-03-06 16:41:27ITPUB9周年纪念徽章
日期:2014-03-05 22:08:282011新春纪念徽章
日期:2014-03-06 16:42:37ITPUB十周年纪念徽章
日期:2011-11-01 16:24:042012新春纪念徽章
日期:2014-03-06 16:50:25红宝石
日期:2014-03-22 09:47:24
发表于 2018-9-13 17:06 | 显示全部楼层
  1. SQL> with t1(a,sal,comm) as
  2. (select '001',500,200 from dual
  3. union all select '002',666,200 from dual
  4. union all select '003',777,100 from dual),
  5. t2(a,b,c,d) as
  6. (select '001','sal',200,1000 from dual
  7. union all select '001','comm',100,500 from dual
  8. union all select '002','sal',800,999 from dual
  9. union all select '002','comm',100,400 from dual
  10. union all select '003','sal',66,888 from dual
  11. union all select '003','comm',222,666 from dual
  12. )
  13. select a,'sal','comm',max(salv) salv,max(commv) commv from (
  14. select t1.*,t2.b,
  15.        (case when t2.b='sal' and t1.sal between t2.c and t2.d then 1 else 0 end) salv,
  16.        (case when t2.b='comm' and t1.comm between t2.c and t2.d then 1 else 0 end) commv
  17.        from t1,t2 where t1.a=t2.a
  18.        )
  19. 19  group by a order by 1;

  20. A   'SA 'COM       SALV      COMMV
  21. --- --- ---- ---------- ----------
  22. 001 sal comm          1          1
  23. 002 sal comm          0          1
  24. 003 sal comm          1          0

复制代码


使用道具 举报

回复
认证徽章
论坛徽章:
0
发表于 2018-9-13 17:21 | 显示全部楼层

谢谢,我去改生产的表试下

使用道具 举报

回复
认证徽章
论坛徽章:
0
发表于 2018-9-13 17:24 | 显示全部楼层

这个要自己去输入2张表的值啊,如果值挺多怎么办

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

【有奖讨论】解决存储挑战了解一下
奖品:米家车载空气净化器 、米家声波电动牙刷 、小米运动蓝牙耳机

在数字经济时代,井喷式增长的数据,在释放大量商业价值的同时,也随之对企业的IT基础设施带来了不容忽视的挑战!如何存储、管理、使用这些数据呢?这是一条比以往更艰难的路~

活动时间:9月20日-10月11日

参与讨论>>
TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 
京ICP备16024965号 北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表