一条得意的SQL查询语句

sungirls 2005-11-18 11:15:10
有两个表
user表

id name idCompany
000001 张三 302000
000002 李四 301000

company表

idCompany name
100000 总公司
201000 **分公司
202000 **分公司
301000 **营业部
302000 **营业部


company表的idCompany编号规则为
100000(总公司)
201000(**分公司)第1位代表为分公司,23位为分公司代码
202000(**分公司)
301000(营业部)第1位代表为营业部,第23位为上级分公司的代码
302000(营业部)

我现在要查这些信息出来
用户名,所属分公司,所属营业部

不知这条SQL语句要怎样写

...全文
444 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
sungirls 2005-11-24
  • 打赏
  • 举报
回复
布衣你的可以,但你能不能帮我解释一下这句
substr(a.idcompany,1,3)='3'||substr(b1.idcompany,2,2)
这个我不懂
「已注销」 2005-11-24
  • 打赏
  • 举报
回复
学习
sungirls 2005-11-23
  • 打赏
  • 举报
回复
substr(a.idcompany,1,3)='3'||substr(b1.idcompany,2,2)
这个我不懂,那位能解释一下
sungirls 2005-11-23
  • 打赏
  • 举报
回复
这样不行luckjackie(永远不懂)
luckjackie 2005-11-23
  • 打赏
  • 举报
回复
不知对否,如下
select a.id,a.name,b1.name as '所属分公司',b2.name as '所属营业部'
from user a,company b1,company b2
where a.idCompany=b2.idCompany and substr(a.idCompany,2,2)=substr(b1.idCompany,2,2);
fuxf 2005-11-23
  • 打赏
  • 举报
回复
create table USER1(
ID varchar2(8),
NAME varchar(20),
IDCOMPANY varchar(8))

INSERT INTO USER1 VALUES('000001','张三','302000')

INSERT INTO USER1 VALUES('000002','李四','301000')

create table company(
IDCOMPANY VARCHAR(8),
NAME VARCHAR(20))

INSERT INTO company VALUES('100000','总公司')

INSERT INTO company VALUES('201000','广东分公司')

INSERT INTO company VALUES('202000','深圳分公司')

INSERT INTO company VALUES('301000','xxx营业室')

INSERT INTO company VALUES('302000','yyy营业室')

select * from user1

select * from company

select a.name,b1.name 所属分公司,b2.name 所属营业部
FROM user1 a,company b1,company b2
where a.idcompany=b2.idcompany
and substr(b2.idcompany,1,1)='3'
and substr(b1.idcompany,2,2)=substr(b2.idcompany,2,2)
and substr(b1.idcompany,1,1)='2'

通过调试了,
这个才是正确的
fuxf 2005-11-23
  • 打赏
  • 举报
回复
select a.name,b1.name as '所属分公司',b2.name as '营业部'
from user a,company b1,company b2 where a.idcompany=b2.idcompany
and substr(b2,1,1)='3'and substr(b1.idcompany,2,2)=substr(b2.idcompany,2,2) and substr(b1,1,1)='2'
wgsasd311 2005-11-18
  • 打赏
  • 举报
回复
select a.name,(select name from company where
substr(idcompany,1,3)='2'||substr(a.idcompany,2,2) ) as "所属分公司",b.name as "营业部"
from user a,company b where a.idcompany=b.idcompany;
Vegachow 2005-11-18
  • 打赏
  • 举报
回复
用substr函数
sungirls 2005-11-18
  • 打赏
  • 举报
回复
标题写错了,应该是一条简单的SQL语句.
stronghill 2005-11-18
  • 打赏
  • 举报
回复
sorry 少了个条件:
select a.name,b1.name as '所属分公司',b2.name as '营业部'
from user a,company b1,company b2 where a.idcompany=b2.idcompany
and substr(a.idcompany,1,3)='3'||substr(b1.idcompany,2,2) and substr(b1,1,1)='2'
sungirls 2005-11-18
  • 打赏
  • 举报
回复
你写的是正确的,但我不懂这条语句
能不能解释一下呀
谢谢了
stronghill 2005-11-18
  • 打赏
  • 举报
回复
select a.name,b1.name as '所属分公司',b2.name as '营业部'
from user a,company b1,company b2 where a.idcompany=b2.idcompany
and substr(a.idcompany,1,3)='3'||substr(b1.idcompany,2,2)
sungirls 2005-11-18
  • 打赏
  • 举报
回复
name name 所属分公司 营业部
张三 深圳分公司 深圳分公司

你给的语句查出的是这种结果
sungirls 2005-11-18
  • 打赏
  • 举报
回复
不太明白你这条语句
是不是我的意思没说清楚
比如有这一条员工记录
000001 张三 302000

我现在要这种结果

000001 张三 广东分公司 深圳营业部

17,137

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧