簡體   English   中英

從多個列中選擇不同的列,並且其匹配值之和

[英]Select distinct from multiple columns and its matching values sum

我有名為Orders表。 表格的每一行代表客戶的訂單。

產品表示產品

+-----------------------------------------------------------------------------------+
| prod_1      | prod_1_qty  | prod_2      |prod_2_qty   | prod_3      | prod_3_qty  |
|-------------------------------------------------------|---------------------------|
| chair       | 3           | board       |9            | bed         |4            |
| board       | 8           | door        |2            | desk        |2            |
| chair       | 2           | window      |1            | door        |6            |
| desk        | 4           | chair       |3            | sofa        |1            |

我想編寫一個查詢來返回訂購的每種product的數量,如下所示:

+---------------------------+
| product     | product_qty |
|---------------------------|
| chair       | 8           |
| board       | 17          |
| door        | 8           |
| window      | 1           |
| sofa        | 1           |
| bed         | 4           |
| desk        | 6           |

有什么方法可以使用T-SQL來實現這一目標,如果是的話,執行此操作的查詢將是什么?

SELECT x.prod
     , SUM(x.prod_qty) AS total
FROM (
       SELECT prod1 AS prod, prod_qty AS total FROM table
          UNION ALL
       SELECT prod2 AS prod, prod_qty AS total FROM table 
          UNION ALL
       SELECT prod3 AS prod, prod_qty AS total FROM table
     ) x 
GROUP BY x.prod

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM