日期:2014-05-17 浏览次数:20574 次
----------------------------
-- 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 行受影响)
*/