【问题标题】:How to turn a order items into a column list of products如何将订单项目变成产品的列列表
【发布时间】:2015-07-22 12:04:36
【问题描述】:

我正在尝试获取列为列的订单的产品列表。我尝试了一个数据透视表,但我不希望列名是产品的名称,而是像产品 1、产品 2 这样的静态名称,然后该行将包含产品 sku 和数量。所有相同的产品都应该放在同一列中。像 product1 列中的所有 sku1 等

例子。订单和订单项表。 然后像这样输出

标题:

orderid,product1, quantity1,product2 quantity2,product3,quantity3

行数:

1 , sku1,3, sku2,4, sku3,5

2 , sku1,2, sku2,5, sku3,1

我创建了一个 sql fiddle:http://sqlfiddle.com/#!3/d993a/4/0,其中包含结构和选择示例。

我最后的想法是一个包含所有相关列的表变量,然后插入,但我仍然看不出它是最好的选择。

提前谢谢.....

【问题讨论】:

  • 显示表结构
  • 它们在 sql fiddle 中。这就是我添加链接的原因。我认为这会让每个人都更容易..?
  • 我在你的数据上尝试了一些东西,但我只能得到我在答案中发布的内容需要更多数量 1、数量 2 ... 值的外观

标签: sql select pivot-table


【解决方案1】:
select  b.quantity, 
CASE WHEN b.productname='product 1' THEN b.sku END 'product1',
CASE WHEN b.productname='product 2' THEN b.sku END 'product2',
CASE WHEN b.productname='product 3' THEN b.sku END 'product3',
CASE WHEN b.productname='product 4' THEN b.sku END 'product4',
CASE WHEN b.productname='product 5' THEN b.sku END 'product5',
CASE WHEN b.productname='product 6' THEN b.sku END 'product6' 
from order1 a join orderitems b on (a.orderid=b.orderid) where a.orderid=
b.orderid ;

输出:

+----------+----------+----------+----------+----------+----------+----------+
| quantity | product1 | product2 | product3 | product4 | product5 | product6 |
+----------+----------+----------+----------+----------+----------+----------+
|        2 | sku1     | NULL     | NULL     | NULL     | NULL     | NULL     |
|        4 | NULL     | sku2     | NULL     | NULL     | NULL     | NULL     |
|        5 | NULL     | NULL     | sku3     | NULL     | NULL     | NULL     |
|        2 | NULL     | NULL     | NULL     | sku4     | NULL     | NULL     |
|        1 | NULL     | NULL     | NULL     | NULL     | sku5     | NULL     |
|        2 | sku1     | NULL     | NULL     | NULL     | NULL     | NULL     |
|        4 | NULL     | sku2     | NULL     | NULL     | NULL     | NULL     |
|        5 | NULL     | NULL     | sku3     | NULL     | NULL     | NULL     |
|        2 | NULL     | NULL     | NULL     | sku4     | NULL     | NULL     |
|        1 | NULL     | NULL     | NULL     | NULL     | sku5     | NULL     |
|        1 | NULL     | NULL     | NULL     | NULL     | NULL     | sku6     |
+----------+----------+----------+----------+----------+----------+----------+

【讨论】:

  • 感谢您的帮助。虽然它不正确,因为我们永远不知道 sku 等。我现在已经完成了表变量和循环。谢谢大家
猜你喜欢
  • 2022-06-16
  • 2014-03-07
  • 1970-01-01
  • 1970-01-01
  • 2016-05-14
  • 2013-12-01
  • 2018-09-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多