powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Запрос-Union работает сам по себе, не работает в другом запросе (ПАМАГИТЕ!)
55 сообщений из 55, показаны все 3 страниц
Запрос-Union работает сам по себе, не работает в другом запросе (ПАМАГИТЕ!)
    #32320418
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Аксес 97-й, mdb.

Собственно есть Запрос1
Код: plaintext
1.
2.
Select * From ЗапросА
Union All
Select * From ЗапросБ

Столбцов в запросах А и Б одинаковое количество, они одинакового типа и даже называются одинаково.
Запрос работает. Данные выдаются.

Все отлично, все прекрасно. Ровно до тех пор пока не пишем Запрос2
Код: plaintext
Select [Запрос1].[ЛюбоеПоле] From Запрос1

Выдается ошибка "В таблицах или запросах, выбранных в запросе на объединение, не совпадает число столбцов"

Причем "Select * From Запрос1" работает.

Наталкиваюсь на такое безобразие уже в который раз. Раньше было на запросах с уровнем вложенности порядка 15, грешил на слишком сложные конструкции, лечил радикальным переписыванием всего. Тут же структура простая, поменять ее не получится, как бороться - непонятно.

Я уже устал вокруг этого запроса с бубном плясать. Сам по себе - работает, делаешь на основе него новую выборку - не работает, только если выборка Select * - то снова работает. Горе мне, бедному еноту.

Кто-нить сталкивался с подобной проблемой?
...
Рейтинг: 0 / 0
Запрос-Union работает сам по себе, не работает в другом запросе (ПАМАГИТЕ!)
    #32320425
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
> структура простая, поменять ее не получится

А это ты напрасно. :^)

Код: plaintext
1.
2.
Select ЛюбоеПоле From ЗапросА
Union All
Select ЛюбоеПоле From ЗапросБ
...
Рейтинг: 0 / 0
Запрос-Union работает сам по себе, не работает в другом запросе (ПАМАГИТЕ!)
    #32320432
IgorM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SP jet'а все стоят? Для теста сделал две простейшие таблицы и два запорса, потом все как у тебя. Выбирает и не жужжит.
...
Рейтинг: 0 / 0
Запрос-Union работает сам по себе, не работает в другом запросе (ПАМАГИТЕ!)
    #32320441
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 IgorM
Для теста и у меня все нормально :), а вот для жизни не совсем :(
СП для джета стоят не все. Аксес 97-й СП2, а отдельных сервиспаков для джета 3.5 я что-то не нашел.

2 Саныч
Если б можно было - я бы так и сделал. В том то и дело, что этот юнион в дальнейшем еще используется, на него програмно накладываются условия, формируемые динамически с помощью какого-то ахеренного механизма.
Модифицировать механизм я упарюсь, нужен именно запрос, способный как он есть работать источником для другого запроса. Такова жись.
...
Рейтинг: 0 / 0
Запрос-Union работает сам по себе, не работает в другом запросе (ПАМАГИТЕ!)
    #32320442
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Где тут Сенин Виктор?
...
Рейтинг: 0 / 0
Запрос-Union работает сам по себе, не работает в другом запросе (ПАМАГИТЕ!)
    #32320443
Фотография Артист
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SP jet'а все стоят?
у меня на XP берёт любой столбец из union без сервиспаков ... причем на юнионе в третьем вложении тоже пара юнионов :)
...
Рейтинг: 0 / 0
Запрос-Union работает сам по себе, не работает в другом запросе (ПАМАГИТЕ!)
    #32320446
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
А если вместо * поставить список полей через зпт?
...
Рейтинг: 0 / 0
Запрос-Union работает сам по себе, не работает в другом запросе (ПАМАГИТЕ!)
    #32320453
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Саныч
Не было никакого Сенина Виктора
Если * заменить на список хоть всех полей, хоть не всех полей - все ломается.

2 Артист
Да я помню как у меня до 14-го уровня было все нормально, а на 15 сломалось. Было еще и с меньшей степенью вложенности.

Где-то аксесу плохо становится.. Знать бы где..
...
Рейтинг: 0 / 0
Запрос-Union работает сам по себе, не работает в другом запросе (ПАМАГИТЕ!)
    #32320459
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
> Если * заменить на список хоть всех полей, хоть не всех полей - все ломается.

Почему? Потому что у таблицы список полей меняется динамически? Так, может, с этим как-то связана и обсуждаемая проблема? Может, таблица какая-то не такая? Попробуй то же самое на обычной таблице.
...
Рейтинг: 0 / 0
Запрос-Union работает сам по себе, не работает в другом запросе (ПАМАГИТЕ!)
    #32320468
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У базовых таблиц список полей не меняется. Во всех сохраненных запросах список полей не меняется. Нигде ничего не меняется.
Сам Union отрабатывает и не жужжит.
Когда добавляешь его в конструктор - он отображается нормально, со списком полей. Т.е. аксес его (Union) и скомпилить сумел, и использовать умеет (вернее думает что умеет), а вот как доходит до выполнения - разное число столбцов там, где оно только что было одинаковое.
Бред.
...
Рейтинг: 0 / 0
Запрос-Union работает сам по себе, не работает в другом запросе (ПАМАГИТЕ!)
    #32320473
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
А что ты имел в виду под "все ломается"? Если поставить вместо * список полей, то а) не работает как и со * или б) не удается реализовать алгоритм?
...
Рейтинг: 0 / 0
Запрос-Union работает сам по себе, не работает в другом запросе (ПАМАГИТЕ!)
    #32320484
incold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я сталкивался с похожей проблемой, но только в SQL

на SQL 7.0 инструкция типа
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
insert into (f1,f2,f3)
select s1.*, s2.*
from (..) s1
inner join (..) s2
 -- если смотреть сначала из первой таблицы, а затем из второй
 
 -- по порядку, то общее число и типы полей совпадают
 


отказывалась работать, а на 2000-м работала прекрасно.
Поскольку я перешел на 2000-й, то решил не копаться глубоко.

Понимаю, что это мало чем поможет...
P.S. Э-эх Microsoft!!!
...
Рейтинг: 0 / 0
Запрос-Union работает сам по себе, не работает в другом запросе (ПАМАГИТЕ!)
    #32320494
Фотография Темный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[offtopic]
ЛП, тебе уже практически дорогу из желтого кирпича выложили к Access'y XP. А ты все на 97...
[/offtopic]
...
Рейтинг: 0 / 0
Запрос-Union работает сам по себе, не работает в другом запросе (ПАМАГИТЕ!)
    #32320497
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Саныч
Да алгоритм то не причем.
Еще раз по пунктам:

Запрос1 - работает
Select * From Запрос1 - работает
Select [ЛюбоеПоле] From Запрос1 - не работает. Ошибка 3307, "В таблицах или запросах, выбранных в запросе на объединение, не совпадает число столбцов"
Select перечислили все поля From Запрос1 - не работает.

Шаманство...
...
Рейтинг: 0 / 0
Запрос-Union работает сам по себе, не работает в другом запросе (ПАМАГИТЕ!)
    #32320500
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Темный
Дорогу то выложили... Но если я на ХР свалю - кто ж им будет 97-й программить :)
...
Рейтинг: 0 / 0
Запрос-Union работает сам по себе, не работает в другом запросе (ПАМАГИТЕ!)
    #32320502
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Лох, я не о том!!! Я предлагаю сам Запрос1 переделать.

Select перечислили все поля From ЗапросА
Union All
Select перечислили все поля From ЗапросБ
...
Рейтинг: 0 / 0
Запрос-Union работает сам по себе, не работает в другом запросе (ПАМАГИТЕ!)
    #32320503
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Саныч
Не могу. К этому юниону на ходу прикручиваются составленные гоммункулусом предложения Select (что еще можно побороть), Where (что тоже можно побороть) и навешиваются агрегаты с группировками (вот тут-то кал и начал стекать в сапоги).
...
Рейтинг: 0 / 0
Запрос-Union работает сам по себе, не работает в другом запросе (ПАМАГИТЕ!)
    #32320506
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тьфу. Саныч, я тебя опять неправильно понял.

То, что ты предложил - пробовал. Не помогает.
...
Рейтинг: 0 / 0
Запрос-Union работает сам по себе, не работает в другом запросе (ПАМАГИТЕ!)
    #32320525
Фотография Темный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А извращаться пробовал? Например, засунуть последнюю конструкцию в рекордсет? И чего он на это скажет.

//коллективные пляски с бубном начались. MSDN молчит, гад.
...
Рейтинг: 0 / 0
Запрос-Union работает сам по себе, не работает в другом запросе (ПАМАГИТЕ!)
    #32320548
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Где тут Сенин Виктор?

Я тут

>Не было никакого Сенина Виктора

Не было

==
По делу чуть по пойзже ибо колбасю функцию на 50 с чем то полей (ака перекрестный запрос), если ошибусь по не внимательности - мне пипиську оторвут :)
...
Рейтинг: 0 / 0
Запрос-Union работает сам по себе, не работает в другом запросе (ПАМАГИТЕ!)
    #32320552
Фотография Артист
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а соответственные поля по разному именуются в селектах юниона?
если да, мож попробовать их обозвать по одинаковому?
Select поле1 as X, поле7 as Y ... From ЗапросА
Union All
Select поле2 as X, поле5 as Y ... From ЗапросБ
...
Рейтинг: 0 / 0
Запрос-Union работает сам по себе, не работает в другом запросе (ПАМАГИТЕ!)
    #32320559
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все конструкции засовывал в во все рекордсеты. Не помогает.

Чувствую придется мне сегодня вечером мароссс петь, в бубен бить, злых духов от компа отгонять.
...
Рейтинг: 0 / 0
Запрос-Union работает сам по себе, не работает в другом запросе (ПАМАГИТЕ!)
    #32320561
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
2 Артист:

автор писал:они одинакового типа и даже называются одинаково
...
Рейтинг: 0 / 0
Запрос-Union работает сам по себе, не работает в другом запросе (ПАМАГИТЕ!)
    #32320563
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Артист
Поля именуются одинаково.
...
Рейтинг: 0 / 0
Запрос-Union работает сам по себе, не работает в другом запросе (ПАМАГИТЕ!)
    #32320570
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2ЛП

Если возможно, дай текст ошибки на англицком языке ну или ее нумер
...
Рейтинг: 0 / 0
Запрос-Union работает сам по себе, не работает в другом запросе (ПАМАГИТЕ!)
    #32320573
Фотография Темный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
3307 - The number of columns in the two selected tables or queries of a union query don't match .
...
Рейтинг: 0 / 0
Запрос-Union работает сам по себе, не работает в другом запросе (ПАМАГИТЕ!)
    #32320576
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
За аглицкий текст сенькс.
Залез с головою в гугль.
...
Рейтинг: 0 / 0
Запрос-Union работает сам по себе, не работает в другом запросе (ПАМАГИТЕ!)
    #32320581
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 ЛП

Ты не одинок! Правда это не твой случай:
Код: plaintext
1.
2.
3.
4.
5.
6.
PRB: Client-Side ADO Union Query Using Oracle OLE DB Provider Returns Incorrect 
Number of Columns

When you create a recordset with ADO  2 . 5  that contains a Union Query, client-
side cursors and the Microsoft Oracle OLE DB Provider return an incorrect number 
of columns.
...
Рейтинг: 0 / 0
Запрос-Union работает сам по себе, не работает в другом запросе (ПАМАГИТЕ!)
    #32320582
Фотография Темный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вылезай, я уже на AltaVista побывал.
...
Рейтинг: 0 / 0
Запрос-Union работает сам по себе, не работает в другом запросе (ПАМАГИТЕ!)
    #32320615
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я писал:Если * заменить на список хоть всех полей, хоть не всех полей - все ломается
Небольшая, но интересная поправочка.

ЗапросА и ЗапросБ имеют одинаковую структуру - большой джойн, группировка по первым семи полям + суммирование по еще двум (вычисляемым).
Так вот, Select Поле1,2,3,4,5,6,7 From Запрос1 - ошибка, Select Поле8, Поле9 From Запрос1 - работает.
Не до конца проверил, каюсь.

Првада это мне мало помогает, но хоть за что-то можно зацепиться.
...
Рейтинг: 0 / 0
Запрос-Union работает сам по себе, не работает в другом запросе (ПАМАГИТЕ!)
    #32320617
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Вставь первое поле фиктивное и работай со всеми кроме него. :^)
...
Рейтинг: 0 / 0
Запрос-Union работает сам по себе, не работает в другом запросе (ПАМАГИТЕ!)
    #32320632
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ААААААААААААААаа
Заработало!!!!
Я еще не понял как, завтра буду выводить закономерность

Мааарррооооссс мааароооссс
...
Рейтинг: 0 / 0
Запрос-Union работает сам по себе, не работает в другом запросе (ПАМАГИТЕ!)
    #32320697
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Код: plaintext
Тут было немножко оффтопика, я его тогось.
...
Рейтинг: 0 / 0
Запрос-Union работает сам по себе, не работает в другом запросе (ПАМАГИТЕ!)
    #32320711
Фотография Темный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Саныч, ты чего наделал? У меня теперь [new] не убирается с топика совсем.
Удали свое модерское сообщение и мое. А потом создай свое модерское с тем же содержанием. ИМХО, должно помочь.
...
Рейтинг: 0 / 0
Запрос-Union работает сам по себе, не работает в другом запросе (ПАМАГИТЕ!)
    #32320714
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
> У меня теперь [new] не убирается с топика совсем.

:^) Знаю. У меня тоже не убирается. Это надо Джаджу показать.
...
Рейтинг: 0 / 0
Запрос-Union работает сам по себе, не работает в другом запросе (ПАМАГИТЕ!)
    #32320736
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Че хоть было то?
...
Рейтинг: 0 / 0
Запрос-Union работает сам по себе, не работает в другом запросе (ПАМАГИТЕ!)
    #32320764
Фотография Темный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Описание проблемы с [new]:
Если модератор удаляет последнее сообшение, которое я уже видел - то [new] так и останется висеть. Предполагаю, что до удалния куков или до того момента, как кто-то ответит еще раз. Куда-то пишется id той самой записи, которую я видел последний раз, а потом просто сравнивается с тем что есть. Причем сравнивается только в одну сторону. По сему предлагаю обновлять енто самое значение при каждом заходе меня в топик.
...
Рейтинг: 0 / 0
Запрос-Union работает сам по себе, не работает в другом запросе (ПАМАГИТЕ!)
    #32320815
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
2 Темный:
Не надо при каждом заходе. Просто оно проверяется на =. А надо на <=.

2 Лох:
А мы тут пытались сконструировать прибор для определения степени опьянения тебя. Темный предлагал что-то похожее на гаишную трубочку, а я - интеллектуальную мышь, которая реагирует на дрожание руки.
...
Рейтинг: 0 / 0
Запрос-Union работает сам по себе, не работает в другом запросе (ПАМАГИТЕ!)
    #32320821
Фотография Темный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 В.С. :
А, собсно, почему? Ведь тогда не надо условия.... тпру-у-у...

Мля, а ведь надо и то и это Торможу-с...

В списке топиков проверять на <=, а при заходе принудительно обновлять (хотя, если подумать, то это уже, наверно, сделано давно).
...
Рейтинг: 0 / 0
Запрос-Union работает сам по себе, не работает в другом запросе (ПАМАГИТЕ!)
    #32320842
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2ЛП
Интересно - что было. Судя по МСДН с Union query должно быть только 2 проблемы: Memo & Ole поля и при линковки таблиц Оракла. А в остальном - тишина (а вдоль дорого мертвые с косами стоятъ)
...
Рейтинг: 0 / 0
Запрос-Union работает сам по себе, не работает в другом запросе (ПАМАГИТЕ!)
    #32320854
TRoUbLEs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
То Лох Позорный:
Немного поздно, но все же: а если сделать так:
SELECT field1 as field1, field2 as field2 .... FROM QueryA
UNION ALL
SELECT field1, field2.... FROM QueryB
и дальше попробовать сделать твой селект:
SELECT field1 FROM QueryUnion??? Может поможет? ;-(
...
Рейтинг: 0 / 0
Запрос-Union работает сам по себе, не работает в другом запросе (ПАМАГИТЕ!)
    #32320964
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 TRoUbLEs
Да пробовал я так, не работало. Теперь работает. Вот ведь блин.

2 Сенин Виктор
Мне самому интересно. Я заставил этот запрос заработать совсем бредовым способом - перечислил все поля в другом порядке, задом наперед. Сделано было от безысходности, но заработало (вот ведь блин!). Потом заметил, что выборка из юниона работает, но при условии что выбирается хоть одно агрегатное поле (из самых нижних запросов), а если только группировочные поля - то хрен вам.
Почему раньше перечисление всех полей не работало - пока не понял. Или мне под конец дня приснилось что-то непонятное...

Сегодня буду на тестовой базке запросы писать, ибо не гоже с бубном плясать.
...
Рейтинг: 0 / 0
Запрос-Union работает сам по себе, не работает в другом запросе (ПАМАГИТЕ!)
    #32320971
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2ЛП
>перечислил все поля в другом порядке, задом наперед.

А что это за поля? Типы, размеры, наличие индексов. План выполнения строится?

==
Блин, не очень удобно давать что-то спрашивать у тебя. Наверняка уже все попробовал, все посмотрел. Так что - извини, если какую глупость спросил.

===
В силу твоей везучести - скорей всего попал еще на одну не документированную фичу от Некрософт - типа X-Prod Join
...
Рейтинг: 0 / 0
Запрос-Union работает сам по себе, не работает в другом запросе (ПАМАГИТЕ!)
    #32321002
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что это за поля? Типы, размеры, наличие индексов. План выполнения строится?
Наталкивался на такое несколько раз, поля совершенно разных типов, размеров и цветов, от индексов тоже не зависит. Потому и не стал типы полей указывать.

В силу твоей везучести - скорей всего попал еще на одну недокументированную фичу от Некрософт - типа X-Prod Join
Как оно называется - еще не знаю, но повторить на новой базе удалось. Сейчас скриптик выложу, кто захочет сможет поиграть.
...
Рейтинг: 0 / 0
Запрос-Union работает сам по себе, не работает в другом запросе (ПАМАГИТЕ!)
    #32321026
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Обещанный скриптик. Создает тестовые таблички и глючные запросы. Данные не нужны.
Глючит под 97-м. Под ХР - все ок даже с непропатченным джетом.

Код: plaintext
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.
Public Sub CreateDeliriumTremens()
    Dim db As Database
    Set db = CurrentDb
    
    Dim tds As TableDefs
    Set tds = db.TableDefs
    
    Dim td As TableDef
    
    Set td = db.CreateTableDef( "Таблица1" )
        td.Fields.Append td.CreateField( "ID" , dbLong)
        td.Fields.Append td.CreateField( "a" , dbLong)
        td.Fields.Append td.CreateField( "b" , dbText)
        td.Fields.Append td.CreateField( "c" , dbDouble)
    tds.Append td
    
    Set td = db.CreateTableDef( "Таблица2" )
        td.Fields.Append td.CreateField( "ID" , dbLong)
        td.Fields.Append td.CreateField( "a" , dbLong)
        td.Fields.Append td.CreateField( "b" , dbText)
        td.Fields.Append td.CreateField( "c" , dbDouble)
    tds.Append td
    
    db.CreateQueryDef  "Запрос1" ,  "Select 1  As [TableID], a, b, Sum(c) As d " & _
         "From [Таблица1] Group By 1 ,a,b"
    db.CreateQueryDef  "Запрос2" ,  "Select 2  As [TableID], a, b, Sum(c) As d " & _
         "From [Таблица2] Group By 2 ,a,b"
    db.CreateQueryDef  "Запрос3" ,  "Select * From [Запрос1] "  & _
         "Union All Select * From [Запрос2]" 
    db.CreateQueryDef  "Запрос_Глючный" ,  "Select TableID, a, b From [Запрос3]" 
    db.CreateQueryDef  "Запрос_Работающий" ,  "Select TableID, a, b, d From [Запрос3]" 
    
    Set td = Nothing
    Set tds = Nothing
    Set db = Nothing
End Sub
...
Рейтинг: 0 / 0
Запрос-Union работает сам по себе, не работает в другом запросе (ПАМАГИТЕ!)
    #32321032
Фотография Shark
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мне кажется, что когда запрос получается очень сложный и начинаются подобные пляски с бубном, нужно использовать промежуточную таблицу(таблицы) для хранения результатов вычислений. Т.е., в Вашем случае вместо
Select * From ЗапросА
Union All
Select * From ЗапросБ

Delete From Запрос1
INSERT INTO Запрос1
SELECT *
FROM ЗапросА
INSERT INTO Запрос1
SELECT *
FROM ЗапросБ
Это снимает все ограничения на сложность запроса и результирующий набор веселее шуршит.
...
Рейтинг: 0 / 0
Запрос-Union работает сам по себе, не работает в другом запросе (ПАМАГИТЕ!)
    #32321037
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
гм... но ведь то, что я привел - это не сложный запрос...
...
Рейтинг: 0 / 0
Запрос-Union работает сам по себе, не работает в другом запросе (ПАМАГИТЕ!)
    #32321040
Фотография Shark
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я на первый пост топика ответил:-)
...
Рейтинг: 0 / 0
Запрос-Union работает сам по себе, не работает в другом запросе (ПАМАГИТЕ!)
    #32321047
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2ЛП
Мб тут собака порылась:

select cstr(MyField) as aaa from Mytable
union
select cdbl(MyField) as aaa from mytable;

вернет таблицу из строкового поля, а если поменять селекты местами - из числового.

М.б. случайно в результате запроса из-за какого-нибудь ведущего Null типы данных путаются?
...
Рейтинг: 0 / 0
Запрос-Union работает сам по себе, не работает в другом запросе (ПАМАГИТЕ!)
    #32321064
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гео, ну у меня же в тестовом примере даже таблицы абсолютно одинаковые, только названием отличаются. Глючит и вообще без данных, и с абсолютно одинаковыми данными в обеих таблицах, и с разными данными.
Явное приведение типов делал. Не спасло.

Если из юниона выбирается хотя бы один агрегатный столбцец низлежащих запросов - работает, если только группировочные - разное число столбцов.

Хрен бы с ним конечно, буду выбирать ненужные на данном этапе агрегаты. Но все равно прикольно.
...
Рейтинг: 0 / 0
Запрос-Union работает сам по себе, не работает в другом запросе (ПАМАГИТЕ!)
    #32321163
Old capsicum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Лох, такое идиотсткое сообщение о несовпадении количества столбцов в аксес можно получить если в вычисляемом поле исходного запроса (Запрос1) есть ошибка (#Ошибка) в каком нибудь хитром случае. Если ошибка идентифицируется аксесом, то получишь сообщение именно об этой ошибке (типа деление на 0), если чтонить посложнее, тогда и происходит такой выбрык (ну, не может аксес предусмотреть все случаи обработки ошибок). У тебя все заработало случайно не после того как ты исходные данные в таблицах поменял или изменил способ вычисления?
...
Рейтинг: 0 / 0
Запрос-Union работает сам по себе, не работает в другом запросе (ПАМАГИТЕ!)
    #32321173
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Насколько я сталкивался, если в вычисляемом поле исходного запроса есть #ошибка, то выдается несоответствие типов данных в условии отбора, а не несовпадение количества столбцов.
Но вычисляемых полей нет. Есть только агрегат (суммирование в моем случае), и вот он то и должен обязательно присутствовать в итоговой выборке, иначе не работает.

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

А тестовый пример вообще без данных глючит с такими же симптомами. И с данными глючит.
...
Рейтинг: 0 / 0
Запрос-Union работает сам по себе, не работает в другом запросе (ПАМАГИТЕ!)
    #32321176
assa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Прикольно. (постараюсь запомнить)

Интересно, что ключевым для проявки бага является не только GROUP BY, но и ALL (в UNION). Если его убрать - все хоккей.

Отсюда - марал: Добавляем в запросы по ,1 AS Exp1 (в 1-й), 2 AS Exp1 (во второй) (...n AS Exp1 -в n-й :0) в список полей и избавляемся от необходимости писать ALL в UNION. Канешна - всего лишь одно из "средств от тараканов". Но должно помочь. Опять же-ж ненужных агрегатов не надь вычислять.


я в 97 jet апдейтил надысь (с подачи ЛП). В АКС2000 проблем нет (его джет, кажисть, рюхает).
Итого, набирается:

1. глюк с левым джоном и константой в полях объединения (от 2-го до 2000 Акса). Назовем "Левая константа".

2. глюк с левым джоном и булевым полем (в 97-м и 2000 точно есть) в присоединяемой таблице, выводимой в набор с группировкой (в т.ч.- именно по этому полю). (Сообщение "Текущая запись отсутствует". Борется хотя бы Nz(буля), или {t.[буль]+0 AS буль}) (для себя обозвал "Null в буле (из-за ЛефтДжона) + GROUP BY буль).

3. И вот этот глюк - "столкновение GROUP BY и UNION ALL".
...
Рейтинг: 0 / 0
Запрос-Union работает сам по себе, не работает в другом запросе (ПАМАГИТЕ!)
    #32321194
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2. глюк с левым джоном и булевым полем (в 97-м и 2000 точно есть) в присоединяемой таблице, выводимой в набор с группировкой (в т.ч.- именно по этому полю). (Сообщение "Текущая запись отсутствует". Борется хотя бы Nz(буля), или {t.[буль]+0 AS буль}) (для себя обозвал "Null в буле (из-за ЛефтДжона) + GROUP BY буль).

Во блин, а я это тоже наблюдал. Только не догадался буль + 0 As буль сделать.
...
Рейтинг: 0 / 0
Запрос-Union работает сам по себе, не работает в другом запросе (ПАМАГИТЕ!)
    #32321228
assa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Во блин, а я это тоже наблюдал. Только не догадался буль + 0 As буль сделать

дык я во ВТОРОЙ раз тоже не догадался (вспомнил, что этот запрос правил уже кому-то и решил сравнить. Когда сравнивал - вспомнил, что "уже бился". Тады (в первОй, бишь, раз) я почему-то быстро сообразил выкинуть часть полей и сразу понял что проблема в нем, - в поле. А во второй-то раз мозги не захотели напрягаться. Все пытался по разному сджойнить (там было табличек 5, - пара иннеров да пара лефтов,). Это уж потом придумал попытаться запомнить глюк по имени. Все одно не помню.
...
Рейтинг: 0 / 0
55 сообщений из 55, показаны все 3 страниц
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Запрос-Union работает сам по себе, не работает в другом запросе (ПАМАГИТЕ!)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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