日期:2014-05-17  浏览次数:20493 次

求一条SQL的SELECT语句,用于在两个表中查询数据并把数据合并到一个新的临时表中。
VB code

'  有如下两个表

'  Users
'  工号   帐号     姓名
'   01   ZhangDW  张丹韦
'   02   HuangCC  黄翠翠
'   03   LiangXR  梁小柔
'   04   WuY      吴颖


'  PackingDetails
'  工号   工序     数量
'   02    装箱      10
'   04   打包装     25
'   02   贴标签     13


' 以上两个表,请问用SELECT语句,怎样写才能得到如下的临时表?

'  ResultTable
'  工号   姓名     工序    数量
'   02   黄翠翠    装箱     10
'   04   吴颖     打包装    25
'   02   黄翠翠   贴标签    13

'非常感谢大家的帮助!



------解决方案--------------------
SORRY,表别名搞错了。
SQL code

SELECT A.[工号],B.[姓名],A.[工序],A.[数量] INTO #T1 FROM PackingDetails AS A WITH(NOLOCK) INNER JOIN
Users AS B WITH(NOLOCK) ON A.[工号]=B.[工号]

------解决方案--------------------
SQL code

declare @Users table(工号 varchar(3),帐号 varchar(10),姓名 nvarchar(5))
insert into @Users
select '01','ZhangDW','张丹韦' union all
select '02','HuangCC','黄翠翠' union all
select '03','LiangXR','梁小柔' union all
select '04','WuY','吴颖'

declare @PackingDetails table(工号 varchar(3),工序 nvarchar(5),数量 int)
insert into @PackingDetails
select '02','装箱',10 union all
select '04','打包装',25 union all
select '02','贴标签',13

--语句
select a.工号,b.姓名,a.工序,a.数量 into ResultTable from @PackingDetails a left join @Users b on a.工号=b.工号

select * from ResultTable
--结果

工号   姓名    工序    数量
---- ----- ----- -----------
02   黄翠翠   装箱    10
04   吴颖    打包装   25
02   黄翠翠   贴标签   13

(3 行受影响)

------解决方案--------------------
SQL code
select a.工号,b.姓名,a.工序,a.数量 
into ResultTable 
from 
PackingDetails a 
left join 
Users b 
on a.工号=b.工号