如果你第一次正常化你的数据,你可以运行任意数量的查询:
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;
您还可以保存“平”查询并参考保存的查询来构建其他更复杂的查询。