sql - 转化为BI相关表

标签 sql sql-server-2008 business-intelligence

现状

date    (nvarchar(9)) 
sku     (nvarchar(5))
smith   (decimal)
jones   (decimal)
jonson  (decimal)
nguyen  (decimal)



date          sku    smith     jones     johnson     nguyen
-----------------------------------------------------------
11/4/2007   X2271     2404   9055,33     7055,22          0
11/4/2007   B1112   108,99         0      244,92    1001.01

请求的结果:

date          sku     salesperson    sales
------------------------------------------
11/4/2007   X2271     Smith           2404
11/4/2007   X2271     Jones        9055,33
11/4/2007   X2271     Johnson      7055,22
11/4/2007   B1112     Smith         108,99
11/4/2007   B1112     Johnson       244,92
11/4/2007   B1112     Nguyen       1001,01

需要一些帮助来解决这个问题。此任务与 BI 任务相关。

最佳答案

您可以使用UNPIVOT命令来完成此操作。

SELECT
    date,
    sku,
    salesperson,
    sales
FROM (
    SELECT
        date,
        sku,   
        smith,
        jones,
        johnson,
        nguyen
    FROM
        YourTable
) q
UNPIVOT
(sales FOR salesperson in (smith, jones, johnson, nguyen)) AS YourUnpivot

关于sql - 转化为BI相关表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9847454/

相关文章:

sql - 在 INNER JOIN 条件下有一个 'OR' 是个坏主意吗?

java - 将 JasperServer 与自定义 java Web 应用程序一起使用的方法?

data-warehouse - 慢慢改变的事实

sql - Hadoop配置单元查询

java - 在 SQL 表中设置日期格式 dd/mm/yyyy

sql - 为什么在希伯来语字符串中搜索值时没有显示结果?

sql-server-2008 - Job.EnumHistory 使用 SQL Server 管理对象返回有关作业持续时间的错误信息

business-intelligence - 打开 qlikview 文件时设置默认工作表(选项卡)

mysql - 每月分期付款发票的数据库设计

php - 带有或条件的Mysql案例