请教sql的写法

luxx123 2005-08-03 09:26:47
两个表
表code

type(类别) id(代码) name(名称)
-------------------------------------------------
1 1 北京
1 2 上海
1 3 广州
2 1 飞机
2 2 火车
3 1 产品1
3 2 产品2
3 3 产品3
3 4 产品4



表stock
id(流水号) cpID(产品id) jtID(交通方式id) mdID(目的地id) fhsj(发货时间)
------------------------------------------------------------------------------------
000001 2 2 1 20050801
000002 2 1 2 20050724
000003 4 1 3 20050801
000004 1 2 2 20050803



要如何写sql语句才能让stock表中的cpID与code表中lb为3的id相等,jtID与code表中lb为2的id相等,
mdID与code表中lb为1的id相等,查询后的显示效果为

表stock
id(流水号) cpID(产品id) jtID(交通方式id) mdID(目的地id) fhsj(发货时间)
------------------------------------------------------------------------------------
000001 产品2 火车 北京 20050801
000002 产品2 飞机 上海 20050724
000003 产品4 飞机 广州 20050801
000004 产品1 火车 上海 20050803
...全文
102 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
沝林 2005-08-04
  • 打赏
  • 举报
回复
select a.id,
max(case when b.id = a.cpid and b.type = 3 then b.name else NULL end) CPID,
max(case when b.id = a.jtid and b.type = 2 then b.name else NULL end) JTID,
max(case when b.id = a.mdid and b.type = 1 then b.name else NULL end) MDID,
a.fhsj
from stock a,code b
group by a.id,a.FHSJ;

SQL>

ID CPID JTID MDID FHSJ
------- ------- ------- ---------- -----------
000001 产品2 火车 北京 2005-8-1
000002 产品2 飞机 上海 2005-7-24
000003 产品4 飞机 广州 2005-8-1
000004 产品1 火车 上海 2005-8-1
feng2 2005-08-04
  • 打赏
  • 举报
回复
SQL> select d1 id,
(select a3 from a where a.a2=d.d2 and a1=3) cpID,
(select a3 from a where a.a2=d.d3 and a1=2) jtID,
(select a3 from a where a.a2=d.d4 and a1=1) mdID,
d5 fhsj
from d;

ID CPID JTID MDID FHSJ
---------- ---------- ---------- ---------- ----------
000001 产品2 火车 北京 20050801
000002 产品2 飞机 上海 20050724
000003 产品4 飞机 广州 20050803
000004 产品1 火车 上海 20050801

Executed in 0.016 seconds

SQL>
feng2 2005-08-04
  • 打赏
  • 举报
回复
select stock.id,
(select name from code where code.id=stock.cpID and code.type=3),
(select name from code where code.id=stock.jtID and code.type=2),
(select name from code where code.id=stock.mdID and code.type=1),
fhsj
from stock;

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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