我需要一些帮助,我需要从我的数据库中提取数据,现在我有一个FD_Documents表和FD_Revision表。
我需要匹配两个表中的GUID,并且还需要是大于2的修订版,一旦匹配完成,它必须在结果中添加新列,QC'ed“1”用于匹配条件或者“0”表示不匹配标准。
我写了下面的内容,但它没有给我结果。
select Case when EXISTS (
SELECT FD_Documents.GUID,
FD_Documents.FD_C231FD9A as [Store],
FD_Documents.FD_97CDB35A as [Store 2],
FD_Documents.FD_8B9BD5C6 as [Transaction Date],
FD_Documents.FD_84A4EF1A as [Account Number],
FD_Documents.FD_1A3D602F as [Name],
FD_Documents.FD_F8EFD019 as [Date of Birth],
FD_Documents.FD_9DAADEC8 as [Document Type],
FD_Documents.FD_8B43AE0B as [Year],
FD_Documents.FD_E77BE253 as [File Name]
FROM FD_Documents, FD_Revisions
WHERE FD_Documents.GUID = FD_Revisions.GUID
AND FD_Documents.Deleted = '0'
AND FD_Revisions.Revision < '3')
THEN CAST(1 as bit)
ELSE CAST(0 AS bit) END
答案 0 :(得分:2)
我假设FD_Documents.Deleted是一个int或bit(不是你帖子中的字符串),并且该版本是一个int(并且应该大于2,就像你的问题描述中的代码而不是你的代码),
SELECT FD_Documents.GUID,
FD_Documents.FD_C231FD9A as [Store],
FD_Documents.FD_97CDB35A as [Store 2],
FD_Documents.FD_8B9BD5C6 as [Transaction Date],
FD_Documents.FD_84A4EF1A as [Account Number],
FD_Documents.FD_1A3D602F as [Name],
FD_Documents.FD_F8EFD019 as [Date of Birth],
FD_Documents.FD_9DAADEC8 as [Document Type],
FD_Documents.FD_8B43AE0B as [Year],
FD_Documents.FD_E77BE253 as [File Name],
CASE ISNULL(FD_Revisions.GUID,'') WHEN '' THEN 0 ELSE 1 END AS IsMatching
FROM FD_Documents LEFT JOIN FD_Revisions
ON FD_Documents.GUID = FD_Revisions.GUID
AND FD_Documents.Deleted = 0
AND FD_Revisions.Revision > 2
答案 1 :(得分:0)
这将为您提供所需状态的不同GUID列表
import _ from 'lodash';
答案 2 :(得分:0)
像这样的东西
SELECT FD_Documents.GUID,
FD_Documents.FD_C231FD9A as [Store],
FD_Documents.FD_97CDB35A as [Store 2],
FD_Documents.FD_8B9BD5C6 as [Transaction Date],
FD_Documents.FD_84A4EF1A as [Account Number],
FD_Documents.FD_1A3D602F as [Name],
FD_Documents.FD_F8EFD019 as [Date of Birth],
FD_Documents.FD_9DAADEC8 as [Document Type],
FD_Documents.FD_8B43AE0B as [Year],
FD_Documents.FD_E77BE253 as [File Name],
case when r.GUID IS NULL then 1 else 0 end [MatchCount]
FROM FD_Documents d
LEFT JOIN FD_Revisions r on d.GUID = r.GUID AND FD_Revisions.Revision > '2'
where FD_Documents.Deleted = '0'
我不能肯定地说,但是这是个主意,如果你提供一些测试数据,这个查询可能更具体,因为这个查询没有经过测试