Sql server 插入1或0,其中EXCEPT在比较表时返回值
使用SQL Server 2014,我如何返回一个1或0的表,然后根据[Loan Identifier]对多个字段名的相似表中存在匹配项的1进行计数。我目前有一个名为dbo.Tape的表,它是原始表,然后是用户正在更新的dbo.[Tape Capture]。两个表中的[贷款标识符]相同 如果你能帮忙,谢谢你Sql server 插入1或0,其中EXCEPT在比较表时返回值,sql-server,tsql,compare,sql-server-2014,except,Sql Server,Tsql,Compare,Sql Server 2014,Except,使用SQL Server 2014,我如何返回一个1或0的表,然后根据[Loan Identifier]对多个字段名的相似表中存在匹配项的1进行计数。我目前有一个名为dbo.Tape的表,它是原始表,然后是用户正在更新的dbo.[Tape Capture]。两个表中的[贷款标识符]相同 如果你能帮忙,谢谢你 SELECT [Loan Identifier], [Completion date], [Tenure], [Underwriter name] FROM d
SELECT
[Loan Identifier], [Completion date], [Tenure], [Underwriter name]
FROM
dbo.Tape
EXCEPT
SELECT
[Loan Identifier], [Completion date], [Tenure], [Underwriter name]
FROM
dbo.[Tape Capture]
如果dbo.Tape
中的[Completion date]
与dbo.[Tape Capture]
中的[Completion date]
匹配,那么我想返回1,否则返回零。然后我想对每列中的所有这些值求和。比如说,
dbo。[磁带捕获]:
[Loan Identifier], [Completion date], [Tenure], [Underwriter name]
1 01/01/2016 Freehold James Mac
2 01/01/2016 Leasehold James Mac
3 02/01/2016 Freehold James Mac
4 01/01/2016 Leasehold James Mac
5 03/01/2016 Freehold James Mac
[Loan Identifier], [Completion date], [Tenure], [Underwriter name]
1 01/01/2016 Freehold James Mac
2 01/01/2016 Freehold James Mac
3 01/01/2016 Freehold James Mac
4 01/01/2016 Freehold James Mac
5 01/01/2016 Freehold James Mac
dbo.Tape:
[Loan Identifier], [Completion date], [Tenure], [Underwriter name]
1 01/01/2016 Freehold James Mac
2 01/01/2016 Leasehold James Mac
3 02/01/2016 Freehold James Mac
4 01/01/2016 Leasehold James Mac
5 03/01/2016 Freehold James Mac
[Loan Identifier], [Completion date], [Tenure], [Underwriter name]
1 01/01/2016 Freehold James Mac
2 01/01/2016 Freehold James Mac
3 01/01/2016 Freehold James Mac
4 01/01/2016 Freehold James Mac
5 01/01/2016 Freehold James Mac
然后,我希望结果表能够容纳:
[Loan Identifier], [Completion date], [Tenure], [Underwriter name]
1 1 1 1
2 1 0 1
3 0 1 1
4 1 0 1
5 0 1 1
从这里,我想总结每列中的值。示例数据和期望的结果将有助于解释您想要做什么。现在还不清楚你想要什么样的结果。嗨,戈登,谢谢。我对我的问题进行了编辑以使其更清晰。样本数据和期望的结果将有助于解释您想要做什么。现在还不清楚你想要什么样的结果。嗨,戈登,谢谢。我对我的问题进行了编辑,使之更清楚。
SELECT T.[Loan Identifier],
CASE
WHEN TC.[Completion date] = T.[Completion date] THEN 1
ELSE 0
END AS [Completion date],
CASE
WHEN TC.[Tenure] = T.[Tenure] THEN 1
ELSE 0
END AS [Tenure],
CASE
WHEN TC.[Underwriter name] = T.[Underwriter name] THEN 1
ELSE 0
END AS [Underwriter name]
FROM [dbo].[Tape] AS T
LEFT JOIN [dbo].[Tape Capture] AS TC
ON T.[Loan Identifier] = TC.[Loan Identifier]