Database 访问一条记录中的多个所有者
第一个数据库具有以下功能: OwnerID、FName、LName 第二个数据库具有以下功能: OwnerID、PolicyName、Owner2ID、Owner3ID、Owner4ID、Owner5ID、Owner6ID、Owner7ID 因此,一个特定的策略有多个所有者。我的问题是如何在Access中设计一个查询,该查询将返回具有多个所有者的每个策略的所有行。例如,假设策略一的OwnerID、Owner2ID、Owner3ID中填充了基于第一个数据库的ID。我如何返回: 所有者ID,策略名称 Owner2ID,策略名称 Owner3ID,策略名称Database 访问一条记录中的多个所有者,database,ms-access,ms-access-2007,relational-database,Database,Ms Access,Ms Access 2007,Relational Database,第一个数据库具有以下功能: OwnerID、FName、LName 第二个数据库具有以下功能: OwnerID、PolicyName、Owner2ID、Owner3ID、Owner4ID、Owner5ID、Owner6ID、Owner7ID 因此,一个特定的策略有多个所有者。我的问题是如何在Access中设计一个查询,该查询将返回具有多个所有者的每个策略的所有行。例如,假设策略一的OwnerID、Owner2ID、Owner3ID中填充了基于第一个数据库的ID。我如何返回: 所有者ID,策略名称
因此,相同的策略名称,但由于一个记录作为多个所有者,它将在一个查询中列出所有所有者 如果首先对数据进行标准化,则可以运行任意数量的查询:
SELECT a.policyname,
a.ownerid
FROM (SELECT policyname,
ownerid
FROM policies
UNION ALL
SELECT policyname,
owner2id
FROM policies
UNION ALL
SELECT policyname,
owner3id
FROM policies
UNION ALL
SELECT policyname,
owner4id
FROM policies
UNION ALL
SELECT policyname,
owner5id
FROM policies
UNION ALL
SELECT policyname,
owner6id
FROM policies
UNION ALL
SELECT policyname,
owner7id
FROM policies) AS a;
例如,下面是一个计数:
SELECT a.policyname,
Count(a.ownerid) AS CountOfOwnerID
FROM (SELECT policyname,
ownerid
FROM policies
UNION ALL
SELECT policyname,
owner2id
FROM policies
UNION ALL
SELECT policyname,
owner3id
FROM policies
UNION ALL
SELECT policyname,
owner4id
FROM policies
UNION ALL
SELECT policyname,
owner5id
FROM policies
UNION ALL
SELECT policyname,
owner6id
FROM policies
UNION ALL
SELECT policyname,
owner7id
FROM policies) AS a
WHERE (((a.OwnerID) Is Not Null))
GROUP BY a.PolicyName;
您还可以保存“平面”查询,并参考保存的查询来构建其他更复杂的查询