求一个SQL语句,双表合并的(50分)

  • 主题发起人 主题发起人 娃娃
  • 开始时间 开始时间

娃娃

Unregistered / Unconfirmed
GUEST, unregistred user!
现有表1
产品 月销售
a 10000
b 2132
c 32325
d 54656

又有表2
产品 日销售
a 100
b 213

如何合并出来表3
产品 月销售 日销量
a 10000 100
b 2132 213
c 32325 0
d 54656 0
 
select a.产品,a.月销售,b.日销售 from 表1 a,表2 b where a.产品=b.产品
 
insert into table3(产品,月销售,日销售)
select 产品,月销售 from table1
union
select 产品,日销售 from table2

 
to louhong:
你说的方法和出来可能就没有表3 的最后二行了。

to ldaan3:
你的这个语句可以运行吗?
 
select a.产品,a.月销售,b.日销售 from 表1 a,表2 b where a.产品=b.产品(+)
用联接, 上面是oracle中的用法,sql server 可以用 join
 
你的方法也不太可行,因为这样的话会丢失表3中的最后两行,不信你试试。
 
select a.产品,a.月销售,iif(b.日销售 is null,0,b.日销售) AS 日销售 from table1 a left join (select * from table2) b
on a.产品=b.产品
-----------------
上面是ACCESS数据库的写法,其他数据库要稍做改动。
 
Select 产品,
(Select 月销售 From 表1 where 产品=AA.产品),
(Select 日销售 From 表2 where 产品=AA.产品)
From (Select 产品 from 表1 union Select 产品 from 表2) AA
Order by 产品
 
Select d1.产品,d1.月销售,
(Select isnull(d2.日销售,0) From 表2 d2 where d2.产品=d1.产品)
From 表1 d1
Order by 产品
 
to QuickSilver:
你的这个SQL语句执行不了,提示说子查询返回值多于一个!

to
 
接受答案了.
 
to pengjinlonge
能不能再告诉我一下,如何把这些NULL值变成0吗?
 
后退
顶部