powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Помогите с объединением таблиц. SQL
9 сообщений из 9, страница 1 из 1
Помогите с объединением таблиц. SQL
    #39667721
vova626
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!
Помогите с объединением таблиц.
Описываю вопрос:
Есть Исходные таблицы. Структура их одинаковая. В Исходной таблице связка "art-part" - уникальная. Т.е. не может в одной таблице быть 2-х одинаковых связок "art-part". У этой связки - есть значение "var".

Таких таблиц несколько.

В результате запроса (о котором я прошу) должна получиться Результирующая таблица.

Примеры (образцы) - ниже под спойлерами.


Исходные таблицы

table1
artpartvar1011102186101150218710117021832051102185205200318820525031855


table2
artpartvar10111021812101190218410117021811011003181420511021882052503181020523031811

table3
artpartvar1011102186101150218710117021832051102185205250318553081104188






Результирующая таблица

Результат объединения таблиц:
artparttable1.vartable2.vartable3.var101 110218 6 12 6101 150218 7 7101 170218 3 1 3101 190218 4 101 100318 14 205 110218 5 8 5205 200318 8 205 250318 55 10 55205 230318 11 308 110418 8





Спасибо всем за помощь!
...
Рейтинг: 0 / 0
Помогите с объединением таблиц. SQL
    #39667725
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vova626,

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
SELECT
    q1.art    ,
    q1.part   ,
    Table1.var,
    Table2.var,
    Table3.var
FROM
    ((
    (
        SELECT
            art,
            part
        FROM
            Table1
        UNION
        SELECT
            art,
            part
        FROM
            Table2
        UNION
        SELECT
            art,
            part
        FROM
            Table3
    )
    AS q1
    LEFT JOIN
        Table1
        ON
            (
                q1.part = Table1.part
            )
            AND
            (
                q1.art = Table1.art
            )
    )
    LEFT JOIN
        Table2
        ON
            (
                q1.part = Table2.part
            )
            AND
            (
                q1.art = Table2.art
            )
    )
    LEFT JOIN
        Table3
        ON
            (
                q1.part = Table3.part
            )
            AND
            (
                q1.art = Table3.art
            )

...
Рейтинг: 0 / 0
Помогите с объединением таблиц. SQL
    #39667750
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vova626,
Бывают запросы на объединение-с помощью такого запроса Вы все решите
Я не знаю всех тонкостей Вашей БД,но мне кажется,что структура из нескольких однотипных таблиц есть не совсем правильно (лучше одна таблица с полем-признаком в которой имеется составной ключ с запретом совпадений по полям art,part,признак)
...
Рейтинг: 0 / 0
Помогите с объединением таблиц. SQL
    #39667810
982183
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я немного по другому делаю подобное.

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
SELECT
    q1.art    ,
    q1.part   ,
    sum(q1.var1),
    sum(q1.var2),
    sum(q1.var3),
from ( SELECT art, part as var1, 00 as var2, 00 as var3
        FROM Table1
 UNION
SELECT art, 00 as as var1, part as var2, 00 as as var3
        FROM Table2
 UNION
SELECT art, , 00 as as var1, 00 as as var2 part as var3
        FROM Table3
    )  as q1
Group by art, part
...
Рейтинг: 0 / 0
Помогите с объединением таблиц. SQL
    #39667962
vova626
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sdku,

Мысль понятна.
Да, конечно, можно сделать и одну таблицу с полем-признаком.
Добавил в исходные таблицы поле data (это и есть поле-признак) - исходные таблицы объединил в одну таблицу.
Но по большому счету - это добавленное поле можно считать именем таблицы. Разве не так?

(p.s. в предложенных запросах - access ошибки выдает)


data art part var040618 101 110218 6040618 101 150218 7040618 101 170218 3040618 205 110218 5040618 205 200318 8040618 205 250318 55110618 101 110218 12110618 101 190218 4110618 101 170218 1110618 101 100318 14110618 205 110218 8110618 205 250318 10110618 205 230318 11180618 101 110218 6180618 101 150218 7180618 101 170218 3180618 205 110218 5180618 205 250318 55180618 308 110418 8
...
Рейтинг: 0 / 0
Помогите с объединением таблиц. SQL
    #39667976
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vova626sdku,
...Добавил в исходные таблицы поле data (это и есть поле-признак)...Это так,если сочетание для art-part-data уникально (для конкретной даты сочетание art-part повторяется только 1 раз).
Не обзывайте поле "data". Правильно, например, "myData",ну и таблицу тоже
...
Рейтинг: 0 / 0
Помогите с объединением таблиц. SQL
    #39667985
vova626
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sdku,

Да, сочетание (My)data-art-part уникально. Вообще-то это не условие. Это данность.
Но тогда как развернуть таблицу что-бы получилось так: ???

artpart(My)data(=040618)(My)data(=110618)(My)data(=170618)101 110218 6 12 6101 150218 7 7101 170218 3 1 3101 190218 4 101 100318 14 205 110218 5 8 5205 200318 8 205 250318 55 10 55205 230318 11 308 110418 8
...
Рейтинг: 0 / 0
Помогите с объединением таблиц. SQL
    #39667989
vova626
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vova626,

Разобрался.

Всем спасибо!
...
Рейтинг: 0 / 0
Помогите с объединением таблиц. SQL
    #39668123
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vova626, мог бы и написать в чём была загвоздка, для тех, кто в будущем будет искать ответа
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Помогите с объединением таблиц. SQL
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]