2012-02-22 70 views
2

我有一個簡單的問題給大家。 我有這樣一個表:如何使用MS Access將一個表分成幾個表?

ID NAME  CODE 
-- ------- ---- 
1 JIM  14 
1 JOHN  26 
2 NICK  26 
3 GEORGE 14 
4 PAUL  14 
4 STEPHEN 26 
5 KELLY 14 
6 JACK  26 

我想創建與上面的3個表。一種僅包含代碼爲14的ID與代碼26不具有相同ID的ID。一種僅包含代碼爲26的ID與代碼14不具有相同ID的ID。另一種包含代碼爲14的ID和代碼26.爲了更精確我想這些表中:

  • 表1:

    ID NAME CODE 
    -- ------ ---- 
    3 GEORGE 14 
    5 KELLY 14 
    
  • 表2:

    ID NAME CODE 
    -- ---- ---- 
    2 NICK 26 
    6 JACK 26 
    
  • 表3:

    ID NAME  CODE 
    -- ------- ---- 
    1 JIM  14 
    1 JOHN  26 
    4 PAUL  14 
    4 STEPHEN 26 
    

在此先感謝您的幫助傢伙!

+0

你想要表或要從查詢結果? – 2012-02-22 09:36:53

回答

1

第一表:

CREATE TABLE table1的AS(SELECT * FROM表3爲T1,其中T1.code = 14 AND T1.id NOT IN(來自表3爲T2其中T1.id選擇T2.id = T2.id AND T2.code = 26));

第二表:

CREATE TABLE table2的AS(SELECT * FROM表3爲T1,其中T1.code = 26 AND T1.id NOT IN(從表3選擇T2.id爲T2其中T1 .id = T2.id AND T2.code = 14));

第三表:

CREATE TABLE表3 AS(選擇T1 *從表3爲T1 INNER JOIN 表3爲T2 ON T1.id = T2.id AND((T2.code = 26。 AND T1.code = 14)或 (T2.code = 14 AND T1.code = 26)));

1

銘記一個VIEW是一個表:

1.

CREATE VIEW Table1 
AS 
SELECT * 
    FROM YourTable AS T1 
WHERE T1.Code = 14 
     AND NOT EXISTS (
         SELECT * 
         FROM YourTable AS T2 
         WHERE T2.Name = T1.Name 
           AND T1.Code = 26 
        ); 

2.

CREATE VIEW Table2 
AS 
SELECT * 
    FROM YourTable AS T1 
WHERE T1.Code = 26 
     AND NOT EXISTS (
         SELECT * 
         FROM YourTable AS T2 
         WHERE T2.Name = T1.Name 
           AND T1.Code = 14 
        ); 

3.

CREATE VIEW Table3 
AS 
SELECT * 
    FROM YourTable AS T1 
WHERE T1.Code = 14 
     AND EXISTS (
        SELECT * 
        FROM YourTable AS T2 
        WHERE T2.Name = T1.Name 
          AND T1.Code = 26 
       ); 

注意CREATE VIEW SQL DDL需要ANSI-92 Query Mode,否則只需按照常規方式將上述內容創建爲「查詢」對象。

相關問題