[SQL]利用UNION ALL整合統計合併資料
2009-10-29 09:57
519 查看
緣起
有時候需要整併一些資料時,UNION ALL可以是個不錯的技巧。本篇用一個範例來說明這樣的應用
範例題目:
假設有四家商店,被其中一家整合了,於是需要將四家商店的資料整合。假設目前四家店都可以整理出(機種MODEL、數量QTY、單價PRICE),而每一家店,都有賣一些獨特的機種,是其他三家所沒有的。那麼如果希望整理出以下這樣的資料,大家會怎麼整理呢??
機種MODEL、店家A金額A_AMT、店家B金額B_AMT、店家C金額C_AMT、店家D_AMT
例如這樣的資料
SHOP_A
SHOP_B
SHOP_C
SHOP_D
希望的結果
我們可以
1.先計算個家電的各機種合計
2.然後每家店的查詢結果,用0代表其他的店
3.將這些資料UNION ALL聯集起來
4.透過GROUP BY , SUM將相同機種的資料合併計算
相關語法如下
這樣的應用小喵用得還蠻多的,提供給各位網友參考囉!!
有時候需要整併一些資料時,UNION ALL可以是個不錯的技巧。本篇用一個範例來說明這樣的應用
範例題目:
假設有四家商店,被其中一家整合了,於是需要將四家商店的資料整合。假設目前四家店都可以整理出(機種MODEL、數量QTY、單價PRICE),而每一家店,都有賣一些獨特的機種,是其他三家所沒有的。那麼如果希望整理出以下這樣的資料,大家會怎麼整理呢??
機種MODEL、店家A金額A_AMT、店家B金額B_AMT、店家C金額C_AMT、店家D_AMT
例如這樣的資料
SHOP_A
SHOP_B
SHOP_C
SHOP_D
希望的結果
我們可以
1.先計算個家電的各機種合計
2.然後每家店的查詢結果,用0代表其他的店
3.將這些資料UNION ALL聯集起來
4.透過GROUP BY , SUM將相同機種的資料合併計算
相關語法如下
SELECT MODEL, SUM(A_AMT) A_AMT, SUM(B_AMT) B_AMT, SUM(C_AMT) C_AMT, SUM(D_AMT) D_AMT FROM ( --商店A資料 SELECT MODEL, QTY*PRICE A_AMT, 0 AS B_AMT, 0 AS C_AMT, 0 AS D_AMT FROM dbo.SHOP_A UNION ALL --商店B資料 SELECT MODEL, 0 AS A_AMT, QTY*PRICE B_AMT, 0 AS C_AMT, 0 AS D_AMT FROM dbo.SHOP_B UNION ALL --商店C資料 SELECT MODEL, 0 AS A_AMT, 0 AS B_AMT, QTY*PRICE C_AMT, 0 AS D_AMT FROM dbo.SHOP_C UNION ALL --商店D資料 SELECT MODEL, 0 AS A_AMT, 0 AS B_AMT, 0 AS C_AMT, QTY*PRICE D_AMT FROM dbo.SHOP_D ) V1 GROUP BY MODEL
這樣的應用小喵用得還蠻多的,提供給各位網友參考囉!!
相关文章推荐
- sql 查询结果合并union all用法_数据库技巧
- LINQ体验(8)——LINQ to SQL语句之Union All/Union/Intersect和Top/Bottom和Paging和SqlMethods
- SQL 基础7—— 集合运算(UNION 与UNION ALL)
- SQL Union和SQL Union All用法
- sql union用法和sql union all用法,sql union效率
- 合并union 和union all用法-sql语句查询结果
- LINQ体验(8)——LINQ to SQL语句之Union All/Union/Intersect和Top/Bottom和Paging和SqlMethods
- SQL UNION ALL
- SQL Union和SQL Union All用法 简单举例
- sql 之 union && union all 以及安全问题
- 通过调整表union all的顺序优化SQL
- SQL指南- UNION and UNION ALL
- sql语句查询结果合并union all用法_数据库技巧
- 【SQL优化】B树索引位图转换及OR到UNION(ALL)的改写
- SQL UNION ALL和UNION
- SQL中语句:UNION all与UNION 的用法与区别
- SQL Union和SQL Union All用法
- Sql UNION AND UNION ALL 用法 【转】
- sql中union all 语法报错可通过改变方式