怎么做合并报表

今天跟大家分享一下怎么做合并报表

1.打开演示文件要求将多个表格数据合并到一起

2.点击下图选项

3.点击【汇总拆分】-【合并多表】

4.选择要合并的工作表

5.设置表头行数为2

6.最后点击【确定】

7.完成效果如下图

### SQL 竖向合并报表的实现方法 在 SQL 中,竖向合并报表通常涉及将来自同一的数据按照某种逻辑排列在同一列中。这可以通过种方式实现,包括使用 `UNION`/`UNION ALL` 操作符、动态 SQL 查询或者借助窗口函数等高级特性。 #### 方法一:使用 UNION / UNION ALL `UNION` 和 `UNION ALL` 是最常用的手段之一,用于将两个或更查询的结果集垂直堆叠在一起[^1]。两者的区别在于,`UNION` 会自动去重,而 `UNION ALL` 不会对重复记录做任何处理,因此效率更高。 ```sql SELECT column_name FROM table_1 UNION ALL SELECT column_name FROM table_2; ``` 如果希望去除重复项,则只需替换为 `UNION` 即可[^1]: ```sql SELECT column_name FROM table_1 UNION SELECT column_name FROM table_2; ``` 这种方法适合于简单的场景下,当需要从不同格获取相似结构的数据时特别有效[^8]。 #### 方法二:利用 CASE 达式模拟转置效果 有时我们不仅想要简单地叠加数据,还希望能够控制显示顺序或者其他属性。此时可以采用条件达式的办法来构建复合字段[^9]。 假设有一个销售业绩报告包含月份和销售额度两项指标,现在想把它们放在同一个维度里呈现出来: ```sql SELECT 'Month' AS Metric_Type, Month_Name AS Metric_Value FROM Sales_Data WHERE Year = 2023 UNION ALL SELECT 'Sales', FORMAT(SUM(Amount), 'C') -- Format amount as currency string FROM Sales_Data GROUP BY Quarter; ``` 这样就实现了既保留原有信息又让其看起来像是被“拉直”的效果[^10]。 #### 方法三:运用 PIVOT & UNPIVOT 功能(仅限部分 RDBMS) 像 Microsoft SQL Server 这样的关系型数据库提供了专门用来转换行列方向的功能——即 Pivot 和 Unpivot 。其中后者正好满足我们的需求,即将宽格式转化为窄格式的过程称为 unpivoting [^11]. 例如给定如下原始资料: | EmployeeID | Jan_Sales | Feb_Sales | |------------|-----------|-----------| | E001 | $5K |$7K | 执行以下语句即可获得所需的纵向布局版本: ```sql SELECT EmployeeID, Sale_Month, Sale_Amount FROM ( SELECT * FROM Original_Table ) pvt UNPIVOT ( Sale_Amount FOR Sale_Month IN ([Jan_Sales], [Feb_Sales]) ) AS upvt; ``` 结果将是这样的形式: |EmployeeID|Sale_Month|Sale_Amount| |-|-|-| |E001 |Jan_Sales|$5K | |E001 |Feb_Sales|$7K | 值得注意的是并非所有的主流数据库都原生支持如此便捷的操作语法;对于那些缺乏相应特性的产品来说,往往不得不依赖存储过程或是第三方工具完成类似的任务[^12]。 --- ### 示例代码展示 为了更好地说明以上提到的各种策略的实际应用场景,请参阅以下几个具体的实例演示。 #### Union All Example: ```sql -- Combining data from two separate tables into one result set without duplicates removal. SELECT CustomerName FROM Customers UNION ALL SELECT SupplierName FROM Suppliers; ``` #### Case Expression Example: ```sql -- Transform multiple columns of information about products to single-column format. SELECT ProductID, Category = CASE WHEN Type='A' THEN 'Electronics' WHEN Type='B' THEN 'Books' ELSE NULL END, Price FROM Products; ``` #### UnPivot Example (SQL Server Specific): ```sql -- Convert wide-format dataset containing monthly sales figures per region back to long-form layout suitable for analysis purposes. SELECT RegionCode,SaleDate,SaleValue FROM RegionalMonthlySales rmstbl UNPIVOT( SaleValue FOR SaleDate IN([January],[February],[March]) -- Add all months here... )AS unpvtdtbl; ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值