Гость
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Вопрос по запросу при объединении / 5 сообщений из 5, страница 1 из 1
12.09.2017, 15:23
    #39519928
ferzmikk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по запросу при объединении
Здравствуйте!

Есть такой запрос-объект "Запрос1"
Код: 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.
//Блок 1
(SELECT
	Т1.[Код] AS [Кодэлемента],	
	NULL AS [Код подэлемента]	
FROM
	Элементы Т1	
WHERE
	Т1.[Привязывать подэлементы]=True)


UNION


//Блок 2
(SELECT
	Т1.[Код] AS [Код элемента],
	Т2.[Код] AS [Код подэлемента]
FROM
	Элементы Т1,
	Подэлементы Т2
WHERE
	Т1.[Привязывать подэлементы]=True)


UNION


//Блок 3
(SELECT
	Т1.[Код] AS [Код элемента],
	NULL AS [Код подэлемента]
FROM
	Элементы Т1
WHERE
	Т1.[Привязывать подэлементы]<>True)

При запуске "Запрос1" выдает ошибку "Не соответствие типов данных в выражении условия отбора"

Все из за того, что в блоке 1 поле [Код подэлемента] при наличии NULL задает не соответствующий формат для блока 2.

Потом если в запросе удалить блок 3, то в результате в поле [Код подэлемента] вылезает абракадабра.

Как это исправить?
...
Рейтинг: 0 / 0
12.09.2017, 15:29
    #39519932
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по запросу при объединении
Поставь сначала блок 2, а потом остальные блоки.
...
Рейтинг: 0 / 0
12.09.2017, 17:37
    #39520020
ferzmikk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по запросу при объединении
AkinaПоставь сначала блок 2, а потом остальные блоки.Поменять то можно. Тут есть один риск. Если в блоке 2 не будут значения, то получится другой тип данных. А нужный тип данных это длинное целое как внешний ключ. Потом результат вставляется в Access-таблицу.
...
Рейтинг: 0 / 0
12.09.2017, 18:39
    #39520047
Вопрос по запросу при объединении
ferzmikkAkinaПоставь сначала блок 2, а потом остальные блоки.Поменять то можно. Тут есть один риск. Если в блоке 2 не будут значения, то получится другой тип данных. А нужный тип данных это длинное целое как внешний ключ. Потом результат вставляется в Access-таблицу.
можно поставить первым пустой подзапрос - для "декларации" результирующих типов данных, в таком духе
Код: sql
1.
2.
3.
SELECT 0 AS [Кодэлемента], 0 AS [Код подэлемента] FROM Элементы WHERE 0=1
UNION
... //и далее все остальные ваши подзапросы
...
Рейтинг: 0 / 0
12.09.2017, 18:54
    #39520056
ferzmikk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по запросу при объединении
непоймучка,

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


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