powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Соединение таблиц в MS Access
4 сообщений из 4, страница 1 из 1
Соединение таблиц в MS Access
    #39535161
kudim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день! Мне необходимо соединить 5 таблиц в MS Access. Проблема заключается в том, что некоторых столбцов в отдельных таблицах не хватает, поэтому запрос на объединения у меня имеет примерно следующий вид:
Код: 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.
SELECT * INTO Сводная2015
FROM 
(SELECT [Год],[Месяц], [ДатаФактОМ], [Полное наименование материала], 
CDbl([Диам, мм]) as [Диаметр, мм], 
CDbl([Стен, мм]) as [Стенка, мм], 
[НТД1], [МСтали], [ГрПроч], [Вид покрытия], [ТипВысадки], [Тип резьбы], 
CDbl([Размер1]) as [1размер], 
CDbl([Размер2]) as [2размер], 
[ПризнТермо], [Мерность длины]
FROM [Таблица1]

UNION ALL

SELECT [Год],[Месяц], [пусто], [Полное наименование материала], 
CDbl([Диам, мм]) as [Диаметр, мм], 
CDbl([Стен, мм]) as [Стенка, мм], 
[НТД1], [МСтали], [ГрПроч], [Вид покрытия], [ТипВысадки], [Тип резьбы], 
[пусто] as [1размер], 
[пусто] as [2размер], 
[ПризнТермо], [Мерность длины]
FROM [Таблица2]

 UNION ALL

SELECT [Год],[пусто], [пусто], [пусто], 
CDbl([Диам, мм]) as [Диаметр, мм], 
CDbl([Стен, мм]) as [Стенка, мм], 
[НТД1], [МСтали], [ГрПроч], [пусто], [ТипВысадки], [Тип резьбы], 
[пусто] as [1размер], 
[пусто] as [2размер], 
[ПризнТермо], [Мерность длины]
FROM [Таблица2]



В этом примере в первой таблице присутствуют все требуемые столбцы, а в последующих двух таблицах некоторые отсутствуют.
Чтобы таблицы могли соединиться, я создаю столбец [пусто] в каждой таблице и ссылаюсь на него, если требуемый столбец отсутствует.

Но для этого мне приходится создавать в каждой таблице этот самый стобец [пусто], а это неудобно. Подскажите, есть ли способ избежать этой операции?
...
Рейтинг: 0 / 0
Соединение таблиц в MS Access
    #39535181
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kudim,

попробуйте так

Код: 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.
SELECT * INTO Сводная2015
FROM 
(SELECT [Год],[Месяц], [ДатаФактОМ], [Полное наименование материала], 
CDbl([Диам, мм]) as [Диаметр, мм], 
CDbl([Стен, мм]) as [Стенка, мм], 
[НТД1], [МСтали], [ГрПроч], [Вид покрытия], [ТипВысадки], [Тип резьбы], 
CDbl([Размер1]) as [1размер], 
CDbl([Размер2]) as [2размер], 
[ПризнТермо], [Мерность длины]
FROM [Таблица1]

UNION ALL

SELECT [Год],[Месяц], [пусто], [Полное наименование материала], 
CDbl([Диам, мм]) as [Диаметр, мм], 
CDbl([Стен, мм]) as [Стенка, мм], 
[НТД1], [МСтали], [ГрПроч], [Вид покрытия], [ТипВысадки], [Тип резьбы], 
"" as [1размер], 
"" as [2размер], 
[ПризнТермо], [Мерность длины]
FROM [Таблица2]

 UNION ALL

SELECT [Год],[пусто], [пусто], [пусто], 
CDbl([Диам, мм]) as [Диаметр, мм], 
CDbl([Стен, мм]) as [Стенка, мм], 
[НТД1], [МСтали], [ГрПроч], "", [ТипВысадки], [Тип резьбы], 
"" as [1размер], 
"" as [2размер], 
[ПризнТермо], [Мерность длины]
FROM [Таблица2]
...
Рейтинг: 0 / 0
Соединение таблиц в MS Access
    #39535192
1. Вместо [пусто] укажите NULL.
2. В UNION запросе тип полей определяется по 1-й секции, поэтому CDbl в 2-й и 3-й секции лишний.
3. Применение CDbl в 1-й секции спорно. Объясните причину.
К тому же при наличии пустых полей это приведет к ошибкам.
...
Рейтинг: 0 / 0
Соединение таблиц в MS Access
    #39535193
kudim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо! Оба способа работают.

Анатолий, применяю CDbl так как эти в этих столбцах встречаются места, где данные не проставлены в течении ста и более строк. Поэтому данные в них помещаются в общую таблицу как текст ( а нужно как число ). И после этого, когда я создаю сводную таблицу из полученного общего файла, суммы в ней не считаются.

Про CDbl во второй и последующих секция понял. Спасибо!
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Соединение таблиц в MS Access
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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