SQL - 从具有唯一记录的 table 中透视列

SQL -Pivoting a column from a table which have Unique records

我正在尝试将 table 转换为在所有列上都有重复记录但在最后一列上有一个名为 ([log_ID]) 的唯一 ID 的行。我不会 log_ID 字段旋转并将动态名称命名为 log_ID_1 ,log_ID_2 ...等等 仅供参考 - log_ID 不是静态的,它们在每次执行时都会改变可能更少或更多。

我的 table 以此检索记录。 enter image description here

我不会这样显示的 enter image description here

您没有说明您使用的是什么数据库,所以我假设它是 SQL 服务器的最新版本..

向您的数据集添加一列,为每个 log_id 生成一个数字...

我用

重新创建了您的样本数据
DECLARE @t TABLE(Emp_ID int, [Name] varchar(20), log_ID int)
INSERT INTO @t VALUES 
    (6354, 'John Doe', 752),
    (6354, 'John Doe', 653),
    (6354, 'John Doe', 635),
    (6354, 'John Doe', 124),
    (6354, 'John Doe', 874),
    (6354, 'John Doe', 254)

SELECT
    [Emp_ID], [Name], [log_ID], 
    CONCAT('log_ID_', ROW_NUMBER() OVER(PARTITION BY Emp_ID ORDER BY Emp_ID) ) as col
    FROM @t 

这给出了以下结果

注意 ROW_NUMBER() 函数需要一个 ORDER BY。我使用 Emp_ID,尽管它们都是一样的,因此结果 应该 按照它们在 table 中的顺序返回。您可以更改 order by 子句以按您喜欢的任何顺序对 log_ID 进行排序。

现在在您的报表中,添加矩阵控件,添加按 emp_idname 的行组,并添加按 col

分组的列组

如果 table 有多个 emp_id,那么它们将出现在报告的不同行中。

仅此而已。