Как объеденить 10 таблиц БД Access в одну?

Тема в разделе "SQL", создана пользователем Aston, 26 авг 2010.

  1. Aston

    Aston Гость

    Доброго времени суток! :)
    Есть база данных в Access, в ней 10 таблиц с одинаковой структурой: Модель, Описание, Характеристики, Объем
    К каждой таблице соответствующий запрос
    Небходимо эти таблицы (либо запросы) обеденить в одну...что-то типа сводного запроса.

    Благодарю за помощь! :facepalm:
     
  2. KIA1990

    KIA1990 Гость

    Код (Text):
    SELCT table1.a, table2.a
    FROM table1, table2
    WHERE table1.a > 5 AND table2.a > 5
    Можно например вот так одним запросом выбрать элементы из нескольких таблиц
     
  3. ????

    ???? Гость

    select * from table1
    UNION ALL
    select * from table2
    ...
     
  4. etc

    etc Гость

    Какие таблицы, какие запросы... ничего не понятно.
     
  5. Aston

    Aston Гость

    Так, в принципе, уже пробывал... ;)
    Выдает сообщение Синтаксическая ошибка в запросе. Неполное предложение запроса.
     
  6. Aston

    Aston Гость

    ;) Что именно не понятно?
    Есть 10 таблиц. С полями Модель(Текстовый), Описание(МЕМО), Характеристики(Текстовый), Объем(Числовой)
    Где-то по 20-30 записей в каждой. Как сделать так чтобы все записи 10-и таблиц были в одной с помощью запроса?
     
  7. etc

    etc Гость

    И все 10 одинаковые? а зачем их столько?
     
  8. Aston

    Aston Гость


    Таблицы разные по содержанию но однотипные по структуре. ;)
     
  9. etc

    etc Гость

    Это понятно что разные, даже 2 записи в 1 таблице разные всегда (почти), иначе на кой их создавать(?), однако на каждую запись не делают по таблице, не правдали?
    Вот мне и не понятно, зачем столько таблиц, закинте все в одну и ненадо будет огороды городить.
    А так запрос вида как у ???? должен помочь. Вы покажите чего у вас там не получилось.
     
  10. Aston

    Aston Гость

    Таблицы разные, потому что в них перечислена однотипная информация из разных источников данных
    Как сделать сводную таблицу с раскрывающимися списками, или сплошным списком?
    Кто знает как подскажите плз. кто знает. Вопрос еще актуален :what?:
     
  11. User1C

    User1C Гость


    Код (Text):
    db.Execute "delete * from Какая_то_созданная_таблица"

    Set rst = db.OpenRecordset("Какая_то_созданная_таблица")

    For i = 1 To 10

    Set rstw = db.OpenRecordset("select * from Tabl + i)

    While Not rstw.EOF

    rst.AddNew

    rst!.Модель = rstw!Модель
    rst!Описание = rstw!Описание
    rst!Характеристики = rstw!Характеристики
    rst!Объем = rstw!Объем
    rst.Update

    rstw.MoveNext
    Wend

    Next i
    :what?:



    Если не получается по простому через Union (хотя если у тебя все поля совпадают, то должно работать), то как вариант!
     
  12. Aleksey

    Aleksey Гость


    Приблизительно минуты три "ковыряния" подтвердили догадку о том, что UNION должен работать. Вот текст запроса для Access, который создает таблицу Tab3 из двух таблиц Tab1 и Tab2:
    SELECT * INTO Tab3 FROM (
    SELECT * FROM Tab1
    UNION ALL
    SELECT * FROM Tab2);
     
  13. etc

    etc Гость

    Автор всеравно не расколется, и не пытайтесь, у него и брат партизан.

    Добавлено:
    Ну я бы наверное застрелился, если бы это было не так.
     
  14. Aston

    Aston Гость

    Благодарю :lovecodeby: Для объединения 2-х таблиц реализовать даный алгоритм тоже получилось. Правда объеденить все 10 пока не получается :KillMe:
    Либо я где-то туплю. либо UNION ALL обеспечивает тип запроса "Добавление" и он годен только только для 2-х таблиц :what?: Поправте, если я заблуждаюсь

    Добавлено:
    Спасибо за идею :rolleyes: Но хотелось бы реализовать как-то проще=) С UNION ALL мне больше нравится. Почти уже получилось=)
     
  15. User1C

    User1C Гость

    Попробуй без UNION ALL

    SELECT Модель, Описание,Характеристики,Объем
    FROM Tabl1;

    UNION SELECT Модель, Описание,Характеристики,Объем
    FROM Tabl2;

    UNION SELECT Модель, Описание,Характеристики,Объем
    FROM Tabl...+n;

    и т.д.

    Должно 100% работать, при условии что все поля совпадают по имени

    Объедини попробуй сначала 2,потом 3, если на какой то не получается, возникает ошибка, то смотри структуру таблицы. Возможно где-то поля не совпадают.
     
  16. Aleksey

    Aleksey Гость

    Ну, э.... синтаксис для объединения десяти таблиц отличается от объединения двух только количеством селектов:
    Код (Text):
    SELECT * INTO Tab_Res FROM (
    SELECT * FROM Tab1
    UNION ALL
    SELECT * FROM Tab2
    UNION ALL
    SELECT * FROM Tab3
    UNION ALL
    SELECT * FROM Tab4
    UNION ALL
    SELECT * FROM Tab5
    UNION ALL
    SELECT * FROM Tab6
    UNION ALL
    SELECT * FROM Tab7
    UNION ALL
    SELECT * FROM Tab8
    UNION ALL
    SELECT * FROM Tab9
    UNION ALL
    SELECT * FROM Tab10);
     
  17. Aston

    Aston Гость

    Все получилось!!! :YES: Доволен как слон))
    Правда вконце набраного запроса появилась интересная крякозябра, которую я не набирал:
    ... Интересно что программа хотела этим сказать

    Вот собственно сам код самого запроса.
    Всем спасибо за оказанную помощь! :rolleyes:
     
  18. etc

    etc Гость

    Про то хелп в курсе
     
Загрузка...

Поделиться этой страницей