2012-09-25 86 views
0

第一個數據庫有以下幾點:訪問多個業主一個記錄

OWNERID,FName參數,LName的

第二個數據庫具有以下內容:

OWNERID,PolicyName,Owner2ID,Owner3ID,Owner4ID,Owner5ID,Owner6ID ,Owner7ID

因此,有多個所有者爲特定的政策。我的問題是如何設計在Access中的查詢將返回所有行對於具有多個所有者每個策略。例如,假設策略一有OwnerID,Owner2ID,Owner3ID根據第一個數據庫填充ID。我怎樣才能返回:

OWNERID,策略名稱 Owner2ID,策略名 Owner3ID,策略名稱

所以相同的策略名稱,但因爲一個記錄作爲多個所有者,它會列出所有的人都在一個查詢。

回答

0

如果你第一次正常化你的數據,你可以運行任意數量的查詢:

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; 

您還可以保存「平」查詢並參考保存的查詢來構建其他更復雜的查詢。