小编Mik*_*ook的帖子

如何构建匹配算法?

我以前从未构建过匹配算法,也不知道从哪里开始.所以这是我的基本设置以及我为什么这样做.如果我没有问正确的问题,请随意纠正我.

我有一个人名的名字和唯一标识符的数据库.几个生成的标识符(内部生成的和一些第三方),姓氏,名字和出生日期是我将使用的主要标识符.

我全年多次收到第三方列表,该列表需要导入并绑定到我数据库中的现有人员,但数据从未像我的一样干净.ID可能会更改,出生日期可能会出现拼写错误,姓名可能会出现拼写错误,姓氏可能会更改,等等.

每次导入都可能有20,000条记录,所以即使它准确率为99%,仍然需要200条记录,我必须手动进行匹配.我认为在将传入的人员与我的用户进行匹配时,我正在寻找更高达99.9%的准确率.

那么,我该如何制作一个可以解决这个问题的算法呢?

PS即使您没有确切的答案,但知道一些材料可供参考也会有所帮助.

PPS一些例子与m3rLinEz写的类似:

ID: 9876234 Fname: Jose     LName: Guitierrez       Birthdate:01/20/84  '- Original'

ID: 9876234 Fname: Jose     LName: Guitierrez       Birthdate:10/20/84  '- Typo in birth date'
ID: 0876234 Fname: Jose     LName: Guitierrez       Birthdate:01/20/84  '- Wrong ID'
ID: 9876234 Fname: Jose     LName: Guitierrez-Brown Birthdate:01/20/84  '- Hyphenated last name'
ID: 9876234 Fname: Jose, A. LName: Guitierrez       Birthdate:01/20/84  '- Added middle initial'
ID: 3453555 Fname: Joseph   LName: Guitierrez       Birthdate:01/20/84  '- Probably someone else with same birthdate and same last name'
Run Code Online (Sandbox Code Playgroud)

algorithm matching

17
推荐指数
1
解决办法
3860
查看次数

如何在选择查询中增加

我有一个我正在处理的查询,我想增加其中一个字段,并在键值不同时重新启动计数器.

我知道这段代码不起作用.以编程方式这是我想要的......

declare @counter int, @id
set @counter = 0
set @id = 0

select distinct 
  id, 
  counter = when id = @id 
              then @counter += 1
            else @id = id  
               @counter = 1     
Run Code Online (Sandbox Code Playgroud)

...最终结果看起来像这样:

ID    Counter
3     1
3     2 
3     3
3     4
6     1
6     2
6     3
7     1
Run Code Online (Sandbox Code Playgroud)

是的,我被SQL2k困住了.否则row_number()会起作用.

sql t-sql sql-server sql-server-2000

10
推荐指数
2
解决办法
9万
查看次数

有没有办法将子报告放在SSRS的头文件中?

我想使用子报告,因为它在标题中的许多报告中使用.但是,子报告不会进入标题,也不会显示字段值.虽然,参数会很好.

有关如何绕过这个的任何建议或参考?

subreport reporting-services

9
推荐指数
1
解决办法
1万
查看次数

如何使用jQuery选择不在特定类中的ID

我有一个jQuery脚本,可以选择所有带有'Phone'的ID.但是,我有一小部分,如果他们在课堂上,则不需要选择它们.

根据我理解的方式,我拥有的是:

$("[id*='Phone']:not('referencePhones')").doSomething();
Run Code Online (Sandbox Code Playgroud)

我错过了什么?

.referencePhones是一个父类.即:

div class="referencePhones"
  span id="Phone"
Run Code Online (Sandbox Code Playgroud)

jquery css-selectors

2
推荐指数
1
解决办法
2249
查看次数

SSRS 2005操作方法:组内组的标题?

得到我想要的东西似乎很简单.数据详细信息显示正确,但我无法让标题合作.

我有很多客户在报告中有他们的活动.我想在标题中的客户端名称,然后在下面的列名称.但我要么在每个条目之前重复列,要么没有客户名称.

这就是我希望报告看起来像:

**Client # 1**

Col1   Col2   Col3
data   data   data
data   data   data


**Client # 2**

Col1   Col2   Col3
data   data   data
data   data   data


**Client # n**

Col1   Col2   Col3
data   data   data
data   data   data
Run Code Online (Sandbox Code Playgroud)

不幸的是我得到的是:

**Client # 1**

Col1   Col2   Col3
data   data   data
Col1   Col2   Col3
data   data   data
Col1   Col2   Col3
data   data   data
Col1   Col2   Col3
data   data   data
Run Code Online (Sandbox Code Playgroud)

或这个:

Col1   Col2   Col3

**Client # 1**

data   data   data
data   data   data
Run Code Online (Sandbox Code Playgroud)

reportingservices-2005 reporting-services

2
推荐指数
1
解决办法
5150
查看次数

如何在SQL Server中的字段中逃避撇号?

几天前我问了一个关于通过运行SELECT将数据移动到另一台服务器来创建INSERT的问题.这很有效,直到我遇到一个完整的HTML和撇号表.处理这个问题的最佳方法是什么?幸运的是没有太多的行,所以作为"复制和粘贴"的最后手段是可行的.但是,最终我需要这样做,那时候表格可能太大了,无法复制和粘贴这些HTML字段.

这就是我现在拥有的:

select 'Insert into userwidget ([Type],[UserName],[Title],[Description],[Data],[HtmlOutput],[DisplayOrder],[RealTime],[SubDisplayOrder]) VALUES ('
    + ISNULL('N'''+Convert(varchar(8000),Type)+'''','NULL') + ','
    + ISNULL('N'''+Convert(varchar(8000),Username)+'''','NULL') + ','
    + ISNULL('N'''+Convert(varchar(8000),Title)+'''','NULL') + ','
    + ISNULL('N'''+Convert(varchar(8000),Description)+'''','NULL') + ','
    + ISNULL('N'''+Convert(varchar(8000),Data)+'''','NULL') + ','
    + ISNULL('N'''+Convert(varchar(8000),HTMLOutput)+'''','NULL') + ','
    + ISNULL('N'''+Convert(varchar(8000),DisplayOrder)+'''','NULL') + ','
    + ISNULL('N'''+Convert(varchar(8000),RealTime)+'''','NULL') + ','
    + ISNULL('N'''+Convert(varchar(8000),SubDisplayOrder)+'''','NULL') + ')' 
    from userwidget 
Run Code Online (Sandbox Code Playgroud)

除了HTMLOutput字段中那些讨厌的撇号之外,哪个工作正常.我可以通过在撇号上加倍查询来逃避它们,还是有一种编码字段结果的方法,这样无关紧要?

sql sql-server

2
推荐指数
1
解决办法
1155
查看次数

如何在SQL 2000中删除重复行?

我以为我弄明白了,但事实证明我只是删除了第一张唱片.以下内容返回重复的行.所有都有2.我只想删除每个重复记录的第一个.

select scorestudentid, scoreadvisor, scorecorrect, count(*) 
from scores
where scoretestid = 3284
group by scorestudentid, scoreadvisor, scorecorrect
having count(scorestudentid) > 1
Run Code Online (Sandbox Code Playgroud)

哪个回报:

scorestudentid  scoreadvisor  scorecorrect  no column name
13033719        28059     3.0           2
13033777        28086     3.0           2
13033826        28147     3.0           2
13033960        28023     3.0           2
Run Code Online (Sandbox Code Playgroud)

所以我把它放在一起认为它会起作用:

set rowcount 1
delete
from scores
where scoretestid = 3284 
and scorestudentid in (
    select scorestudentid
    from scores
    where scoretestid = 3284
    group by scorestudentid
    having count(scorestudentid) > 1)
Run Code Online (Sandbox Code Playgroud)

它看起来应该是一个简单的概念,但我没有得到它.

基于托马斯脚本我更新了查询以适应但它仍然无法正常工作.

Delete Scores
Where Exists …
Run Code Online (Sandbox Code Playgroud)

sql sql-server-2000

1
推荐指数
1
解决办法
4029
查看次数