需要帮助合并 2 个表中的列并根据 sql 中的参数将剩余数据保留在行中
Need help combining columns from 2 tables and keep remaining data in rows based on parameters in sql
我需要一些帮助!我被引导到 intersect 函数,但它似乎有限,因为它只匹配和 returns 匹配值。我正在尝试将 2 个表合并到一个公共列值上,并根据日期参数 return 行。这甚至可以使用 SQL 吗?提前致谢!
我的起始表是这样的:
name date doc info
janedoe 7/21 jones 47
jonwall 7/1 nick 21
name date doc info
janedoe 6/21 jones 74
jonwall 8/31 hall 22
我想按重名合并这些行。并根据最近的日期保留剩余数据。所以最终结果应该是这样的。
name date doc info
janedoe 7/21 jones 47
jonwall 8/31 hall 22
有没有人可以帮我解决这个问题????我目前正在使用 SQLExpress
WITH allRows AS (
SELECT * FROM tableA
UNION ALL
SELECT * FROM tableB
), mostRecent AS (
SELECT *,
ROW_NUMBER() OVER
(PARTITION BY name ORDER BY date DESC) as rn
FROM allRows
)
SELECT *
FROM mostRecent
WHERE rn = 1
你应该有一些 ID
专栏,否则你会有两个人同名的风险。
我需要一些帮助!我被引导到 intersect 函数,但它似乎有限,因为它只匹配和 returns 匹配值。我正在尝试将 2 个表合并到一个公共列值上,并根据日期参数 return 行。这甚至可以使用 SQL 吗?提前致谢!
我的起始表是这样的:
name date doc info
janedoe 7/21 jones 47
jonwall 7/1 nick 21
name date doc info
janedoe 6/21 jones 74
jonwall 8/31 hall 22
我想按重名合并这些行。并根据最近的日期保留剩余数据。所以最终结果应该是这样的。
name date doc info
janedoe 7/21 jones 47
jonwall 8/31 hall 22
有没有人可以帮我解决这个问题????我目前正在使用 SQLExpress
WITH allRows AS (
SELECT * FROM tableA
UNION ALL
SELECT * FROM tableB
), mostRecent AS (
SELECT *,
ROW_NUMBER() OVER
(PARTITION BY name ORDER BY date DESC) as rn
FROM allRows
)
SELECT *
FROM mostRecent
WHERE rn = 1
你应该有一些 ID
专栏,否则你会有两个人同名的风险。