【问题标题】:Merging 2 records in a view into single record - SQL Server将视图中的 2 条记录合并为一条记录 - SQL Server
【发布时间】:2016-08-06 02:15:39
【问题描述】:

我有一个视图,其中包含来自多个表的记录。

Sample data below in the image

在从视图中检索记录时,我必须将上述 2 条记录合并为如下图所示的单个记录。对此的任何建议都会非常有帮助

Sample 2

添加更多信息: 有一个表 A,其中包含不应编辑的数据。因此,如果需要添加/修改任何新数据,它将从前端键入并存储在两个不同的表 B 和 C 中,具体取决于屏幕。因此,键入的用户数据(姓名、性别、出生日期等)与存储在表 B 和 C 以及表 A 中的数据之间存在不匹配的可能性。我创建了一个视图,将交叉检查 2 个表(表 B)中的数据& C) 将公共表(表 A)中的数据分开并合并它们。如果表 A 和 B 或表 A​​ 和 C 之间的数据不匹配,则根据哪个表的数据不匹配,列 Issue_In_table1 或 Issue_In_Table2 将被硬编码为真/假。只有在 Issue_In_table1 和 Issue_In_Table2 列中存在数据差异(或者是或否),两者都有可能具有相同的不匹配数据。因此,对于相同的不匹配数据,我需要有 2 条不同的记录,而我需要将 Issue_In_table1 和 Issue_In_Table2 都设置为 yes。

【问题讨论】:

    标签: tsql view sql-server-2012


    【解决方案1】:

    这是你想要的吗?

    SELECT
    id, company_code, ROLE, seq_number, country, TYPE,
    first_name, middle_name, last_name, gender, dob,
    MAX([issue IN TABLE 1]),
    MAX([issue IN TABLE 2])
    FROM
    VIEW
    GROUP BY
    id, company_code, ROLE, seq_number, country, TYPE,
    first_name, middle_name, last_name, gender, dob
    

    不确定您的 True/False 值是如何存储的,如果它们是文本或数字,但如果它掩盖的是 Trues 而不是 Falses,请尝试 MIN()

    【讨论】:

    • 非常感谢。我正在尝试不同的事情,但没有任何结果。它真的为我节省了很多时间
    猜你喜欢
    • 1970-01-01
    • 2017-02-24
    • 1970-01-01
    • 1970-01-01
    • 2021-04-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多