sql - 使用 SQL Server 2000 进行数据透视

标签 sql sql-server tsql sql-server-2000

我整理了一个有关我的问题的示例场景,希望有人能指出我正确的方向。

我有两张 table

产品

alt text

产品元

alt text

我需要以下结果集

alt text

最佳答案

我意识到这已经有两年了,但让我感到烦恼的是,接受的答案要求使用动态 SQL,而得票最多的答案将不起作用:

Select P.ProductId, P.Name
    , Min( Case When PM.MetaKey = 'A' Then PM.MetaValue End ) As A
    , Min( Case When PM.MetaKey = 'B' Then PM.MetaValue End ) As B
    , Min( Case When PM.MetaKey = 'C' Then PM.MetaValue End ) As C
From Products As P
        Join ProductMeta As PM
            On PM.ProductId = P.ProductId
Group By P.ProductId, P.Name

必须使用分组依据,否则您将得到交错的结果。如果使用 Group By,则必须将不在 Group By 子句中的每一列包装在聚合函数(或子查询)中。

关于sql - 使用 SQL Server 2000 进行数据透视,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/312861/

相关文章:

sql - postgres 选择聚合时间跨度

sql-server - Reporting Services 能否用于格式化 XML 数据类型列中返回的 XML?

sql - 如何在同一服务器上将数据库备份和恢复为副本?

sql - 从 CTE 更新表中的记录

mysql - 如何停止对忽略的插入进行自动递增,这些插入不会对 MySQL 进行任何更改?

java - 如何编写 sql 查询以使用准备好的语句更新表的多个列?

mysql - 如何在一张表中包含多个select语句

sql-server - 将 CSV 导入表时出现问题

sql-server - 从 SQL 表创建 XML(唯一的 XML 格式)

sql - 由于 LEFT JOIN 或子查询,无法在 View 上创建 CLUSTERED INDEX