27,580
社区成员
发帖
与我相关
我的任务
分享---测试数据---
if object_id('[表1]') is not null drop table [表1]
go
create table [表1]([客户] varchar(1),[接单重量] int)
insert [表1]
select 'a',10 union all
select 'b',15
if object_id('[表2]') is not null drop table [表2]
go
create table [表2]([客户] varchar(1),[小机接单重量] int)
insert [表2]
select 'a',5 union all
select 'b',5
if object_id('[表3]') is not null drop table [表3]
go
create table [表3]([客户] varchar(1),[大机接单重量] int)
insert [表3]
select 'a',5 union all
select 'b',10
if object_id('[表4]') is not null drop table [表4]
go
create table [表4]([客户] varchar(1),[总完成量] int)
insert [表4]
select 'b',8 union all
select 'c',20
if object_id('[表5]') is not null drop table [表5]
go
create table [表5]([客户] varchar(1),[小机完成量] int)
insert [表5]
select 'b',4 union all
select 'c',8
if object_id('[表6]') is not null drop table [表6]
go
create table [表6]([客户] varchar(1),[大机完成量] int)
insert [表6]
select 'b',4 union all
select 'c',12
---查询---
SELECT
客户,
SUM(接单重量) AS 接单重量,
SUM(小机接单重量) AS 小机接单重量,
SUM(大机接单重量) AS 大机接单重量,
SUM(总完成量) AS 总完成量,
SUM(小机完成量) AS 小机完成量,
SUM(大机完成量) AS 大机完成量
FROM
(
SELECT 客户,接单重量,0 AS 小机接单重量,0 AS 大机接单重量,0 AS 总完成量,0 AS 小机完成量,0 AS 大机完成量 FROM 表1
UNION ALL
SELECT 客户,0,小机接单重量,0,0,0,0 FROM 表2
UNION ALL
SELECT 客户,0,0,大机接单重量,0,0,0 FROM 表3
UNION ALL
SELECT 客户,0,0,0,总完成量,0,0 FROM 表4
UNION ALL
SELECT 客户,0,0,0,0,小机完成量,0 FROM 表5
UNION ALL
SELECT 客户,0,0,0,0,0,大机完成量 FROM 表6
) T
GROUP BY 客户
---结果---
客户 接单重量 小机接单重量 大机接单重量 总完成量 小机完成量 大机完成量
---- ----------- ----------- ----------- ----------- ----------- -----------
a 10 5 5 0 0 0
b 15 5 10 8 4 4
c 0 0 0 20 8 12
(3 行受影响)SELECT
客户,
SUM(接单重量) AS 接单重量,
SUM(小机接单重量) AS 小机接单重量,
SUM(大机接单重量) AS 大机接单重量,
SUM(总完成量) AS 总完成量,
SUM(小机完成量) AS 小机完成量,
SUM(大机完成量) AS 大机完成量
FROM
(
SELECT 客户,接单重量,0 AS 小机接单重量,0 AS 大机接单重量,0 AS 总完成量,0 AS 小机完成量,0 AS 大机完成量 FROM 表1
UNION ALL
SELECT 客户,0,小机接单重量,0,0,0,0 FROM 表2
UNION ALL
SELECT 客户,0,0,大机接单重量,0,0,0 FROM 表3
UNION ALL
SELECT 客户,0,0,0,总完成量,0,0 FROM 表4
UNION ALL
SELECT 客户,0,0,0,0,小机完成量,0 FROM 表5
UNION ALL
SELECT 客户,0,0,0,0,0,大机完成量 FROM 表6
) T
GROUP BY 客户