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

sql复杂语句!!!
我现在有2个表,
表1
ID Name Price   number
1   name1  100   1
2   name1  100   2
3   name2  200   3
表2
ID Name Price    number
1   name1  100   3
3   name2  200   3
我选择要统计成这样。。我该怎么写sql语句啊。。。大侠们出来了哦。。


------解决方案--------------------
插入就不用我写了吧?
----------------------------
-- Author  :DBA_Huangzj(發糞塗牆)
-- Date    :2013-01-10 22:40:53
-- Version:
--      Microsoft SQL Server 2008 R2 (SP1) - 10.50.2500.0 (Intel X86) 
-- Jun 17 2011 00:57:23 
-- Copyright (c) Microsoft Corporation
-- Enterprise Edition on Windows NT 6.1 <X86> (Build 7601: Service Pack 1)
--
----------------------------
--> 测试数据:[表1]
if object_id('[表1]') is not null drop table [表1]
go 
create table [表1]([ID] int,[名称] varchar(5),[价格] int,[数量1] int)
insert [表1]
select 1,'名称1',100,1 union all
select 2,'名称1',100,4 union all
select 3,'名称2',200,7
--------------开始查询--------------------------
--> 测试数据:[表2]
if object_id('[表2]') is not null drop table [表2]
go 
create table [表2]([ID] int,[名称] varchar(5),[价格] int,[数量2] int)
insert [表2]
select 1,'名称1',100,3 union all
select 2,'名称2',200,3
--------------开始查询--------------------------

SELECT 名称 ,价格,SUM(数量1)数量1,SUM(数量2)数量2
FROM (
select 名称 ,价格, 0 AS 数量1,数量2
from [表2]
UNION ALL 
select 名称 ,价格,数量1 ,0 数量2 
from [表1])a
GROUP BY 名称 ,价格
----------------结果----------------------------
/* 
名称    价格          数量1         数量2
----- ----------- ----------- -----------
名称1   100         5           3
名称2   200         7           3

(2 行受影响)

*/