Как я могу разделить одну таблицу на несколько с помощью MS Access? - PullRequest
2 голосов
/ 22 февраля 2012

У меня к вам простой вопрос.У меня есть такая таблица:

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, которые не имеют одинаковый идентификатор с кодом 26. Один, который включает в себя только идентификаторы с кодом 26, которые не имеют одинаковый идентификатор с кодом 14. И один, который включает в себя идентификаторы с кодом 14 икод 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
    

Заранее спасибо за любую помощь, ребята!

Ответы [ 2 ]

1 голос
/ 22 февраля 2012

Учитывая, что 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 , в противном случае просто создайте описанное выше как объекты запроса обычным способом.

1 голос
/ 22 февраля 2012

1-й стол:

CREATE TABLE table1 AS (выберите * из таблицы3 как T1, где T1.code = 14 AND T1.id NOT IN (выберите T2.id из таблицы 3 как T2, где T1.id = T2.id AND T2.code = 26));

2-я таблица:

CREATE TABLE table2 AS (выберите * из таблицы3 как T1, где T1.code = 26 AND T1.id NOT IN (выберите T2.id из таблицы 3 как T2, где T1.id = T2.id AND T2.code = 14));

3-я таблица:

CREATE TABLE table3 AS (выберите T1. * Из таблицы3 как T1 INNER JOIN table3 как T2 ON T1.id = T2.id AND ((T2.code = 26 AND T1.code = 14) ИЛИ (T2.code = 14 И T1.code = 26)));

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...