我有一个表,其中已装载4个不同来源的记录。除了FName,LName,Addr1,Addr2,City,State和Zip,每个来源的记录之间没有公共因素。我会根据加载它们的源文件为每个记录分配一个FileID。我需要构建一个查询,在其中可以识别出在所有4个文件,3个文件,2个文件等中都发现了哪个人/家庭。我只需要为每个重复的人/家庭维护一个记录。
另一个棘手的部分是,我在4个文件中的2个上有电子邮件地址,另外两个文件上也有一个Emailable字段。这是在维护单个选定记录时也需要考虑的一个因素。
例如,一个组将由以下各项表示:“以下所有列表中的个人:DMA,车辆所有权和生活方式(财富引擎)列表。这些人必须具有电子邮件地址。”但是,然后需要将另一个组标识为“以下所有列表中的个人:DMA,车辆所有权和生活方式(财富引擎)列表。这些人没有电子邮件地址”
示例数据:
ID FirstName LastName FullName Address1 Address2 City State Zip Zip4 EmailAddress FILE EMAILABLE
06925901SNDCR44110G6520 S Nylah Watson NULL 1234 Main NULL Anytown ST 10000 2000 NULL DMA Y
1641189779 Nylah Watson NULL 1234 Main Anytown ST 10000 2000 nylahwatson@gmail.com LST
06925901SNDCR44110G6520 S Nylah Watson NULL 1234 Main NULL Anytown ST 10000 2000 NULL VEH Y
374977111 Nylah Watson NULL 1234 Main NULL Anytown ST 10000 2000 nylahwatson@gmail.com V12 NULL
48770181SBRNT 1345M6352 S Watson Nylah NULL 4321 Main NULL HOUSTON TX 20000 3000 NULL DMA N
48770181SBRNT 1345M6352 S Watson Nylah NULL 4321 Main NULL HOUSTON TX 20000 3000 NULL VEH N
1933990731 Watson Nylah NULL 4321 Main Houston TX 20000 3000 LST
答案 0 :(得分:0)
根据您需要的组的数量/灵活程度,您可能需要执行以下操作:
const url = 'tel:5684567854';
Linking.canOpenURL(url).then(supported => {
if (!supported) {
console.log('Can\'t handle url: ' + url);
} else {
return Linking.openURL(url);
}
}).catch(err => console.error('An error occurred', err));
然后使用该结果集创建您的组合组,例如:
Select Name, Address... -- Fields you want to group on (consider to identify the same person)
, max(case when File = 'DMA' then 1 else 0 end) as HasDMAFile
, max(case when File = 'Veh' then 1 else 0 end) as HasVEHFile --repeat for your other file types
, max(case when emailaddress is not null then 1 else 0 end) as HasEmail
From MyTable
Group by Name, Address...--same list of fields as you use at the beginning of your select
答案 1 :(得分:0)
SELECT
FName, LName, Addr1, Addr2, City, State, Zip,count(distinct File)
FROM <TABLE>
GROUP BY FName, LName, Addr1, Addr2, City, State, Zip
Having count(distinct File)=4
电子邮件可以合并,但是您需要确定优先顺序。