同一 ID 具有多条记录到单行

roh*_*ohi 0 sql sql-server

我有两张桌子。

表 A 看起来像这样。

来源 ID 类型_ID 错误信息
ABC 100 1 国家栏缺失
ABC 100 2 换算系数缺少小数
BCA 200 1 高度列中的错误值
BCA 200 2 转换系数应为 0.001

表 B 看起来像这样。

来源 ID 类型_1_ID 错误信息_1 类型_2_ID 错误信息_2
ABC 100
BCA 200

我想根据源和 ID 列加入这两个表。如果您查看表 A,您可以看到 ID 100 和 200 我有两条记录,但区别在于 Type_ID 列和 Error_info 列。我希望这两个记录位于一行中,如下表所示。

来源 ID 类型_1_ID 错误信息_1 类型_2_ID 错误信息_2
ABC 100 1 国家栏缺失 2 换算系数缺少小数
BCA 200 1 高度列中的错误值 2 转换系数应为 0.001

有没有办法实现这一点。我尝试使用 case 语句,显然它不起作用。任何建议肯定会对我有帮助。

Tim*_*sen 7

如果您只想使用表 A查看表 B 中建议的输出,则使用数据透视查询:

SELECT
    source,
    ID,
    1 AS Type_1_ID
    MAX(CASE WHEN Type_ID = 1 THEN Error_info END) AS Error_info_1,
    2 AS Type_2_ID,
    MAX(CASE WHEN Type_ID = 2 THEN Error_info END) AS Error_info_2
FROM yourTable
GROUP BY
    source,
    ID;
Run Code Online (Sandbox Code Playgroud)