2个简单的表合并!

wangxiaofeiwuqiao 2010-09-22 08:25:37
有2个简单的表,要合并在一起
tb1:

(物料编码) (物料名称) (数量1) (数量2)
ITEM_CODE DES WIP STOCK
21-00001-00010 塑胶A 500 400
21-00002-00020 塑胶B 100 0
21-00002-00030 塑胶C 0 600
......

tb2: ITEM_CODE是tb1的子集,tb2中所有的ITEM_CODE都在tb1中

(物料编码) (物料名称) (PO数量)
ITEM_CODE DES PONumber
21-00001-00010 塑胶A 8000
21-00002-00020 塑胶B 300
......

我想要的结果:

(物料编码) (物料名称) (数量1) (数量2) (PO数量)
ITEM_CODE DES WIP STOCK PONumber
21-00001-00010 塑胶A 500 400 8000
21-00002-00020 塑胶B 100 0 300
21-00002-00030 塑胶C 0 600 0
......


数据环境:sql server 2000
...全文
109 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
ai_li7758521 2010-09-22
  • 打赏
  • 举报
回复

CREATE TABLE #TB1
(
ITEM_CODE varchar(14),
DES nvarchar(10),
WIP int,
STOCK int
);

INSERT #TB1
SELECT '21-00001-00010', '塑胶A', 500, 400 UNION ALL
SELECT '21-00002-00020', '塑胶B', 100, 0 UNION ALL
SELECT '21-00002-00030', '塑胶C', 0, 600;

CREATE TABLE #TB2
(
ITEM_CODE varchar(14),
DES nvarchar(10),
PONumber int
);

INSERT #TB2
SELECT '21-00001-00010', '塑胶A', 8000 UNION ALL
SELECT '21-00002-00020', '塑胶B', 300;


-------------------------------------------------------
SELECT A.*,PONumber=ISNULL(PONumber,0)
FROM #TB1 A LEFT JOIN #TB2 B
ON A.ITEM_CODE=B.ITEM_CODE

--结果:

ITEM_CODE DES WIP STOCK PONumber
-------------- ---------- ----------- ----------- -----------
21-00001-00010 塑胶A 500 400 8000
21-00002-00020 塑胶B 100 0 300
21-00002-00030 塑胶C 0 600 0

(3 行受影响)
dawugui 2010-09-22
  • 打赏
  • 举报
回复
select m.* , isnull(n.PONumber , 0) PONumber  
from tb1 m left join tb2 n
on m.ITEM_CODE = n.ITEM_CODE
order by m.ITEM_CODE

select m.* , isnull(n.PONumber , 0) PONumber
from tb1 m left join tb2 n
on m.ITEM_CODE = n.ITEM_CODE and m.DES = n.DES
order by m.ITEM_CODE,m.DES
Rotel-刘志东 2010-09-22
  • 打赏
  • 举报
回复
select m.*,ishull(n.ponumber,0) ponumber
from tb1 m,tb2 n
where m.item_code=n.item_code
喜-喜 2010-09-22
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 ws_hgo 的回复:]
SQL code
select b1.*,isnull(b2.PONumber,0) PONumber
from tb1 b1
left join tb2 b2
on b1.ITEM_CODE=b2.ITEM_CODE
[/Quote]

up...

中秋快乐
ws_hgo 2010-09-22
  • 打赏
  • 举报
回复
select b1.*,isnull(b2.PONumber,0) PONumber
from tb1 b1
left join tb2 b2
on b1.ITEM_CODE=b2.ITEM_CODE
wangxiaofeiwuqiao 2010-09-22
  • 打赏
  • 举报
回复
我想直接用sql 语句,不要存储过程,因为我还要用它合成其他的表。

22,301

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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