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
...全文
80 点赞 收藏 6
写回复
6 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
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
回复
我想直接用sql 语句,不要存储过程,因为我还要用它合成其他的表。
回复
相关推荐
发帖
疑难问题
创建于2007-09-28

2.1w+

社区成员

MS-SQL Server 疑难问题
申请成为版主
帖子事件
创建了帖子
2010-09-22 08:25
社区公告
暂无公告