SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 22.04.2024 13:45:56

sasch
Участник
Зарегистрирован: 22.04.2024
Сообщений: 4

Как соединить две схожие таблицы, полученные SQL-запросом?

Добрый день, уважаемые форумчане! Есть у меня небольшой файл Excel с SQL-запросом. В данный момент возникла необходимость присоединить к сформированной запросом таблице снизу точно такую же по структуре таблицу, из того же источника, только с несколькими другими столбцами. То есть нужно сделать так, чтобы к имеющейся таблице снизу добавилась точно такая же таблица, столбцы которой впоследствии можно будет изменять. При использовании второго "Union All" и последующего за ним кода программа не добавляет таблицу, а ругается на "Несоответствие типов данных в выражении условия отбора". Может подскажете в чем ошибка?

Файл-пример работает при размещении в корне диcка D.


Прикрепленные файлы:
Attachment Icon Фрукты.xlsm, Размер: 14,819 байт, Скачано: 26

Неактивен

 

#2 28.04.2024 12:38:56

sasch
Участник
Зарегистрирован: 22.04.2024
Сообщений: 4

Re: Как соединить две схожие таблицы, полученные SQL-запросом?

почему-то этот запрос работает:

Select
Null As [Дата],
t1.[Продукт],
t1.[FSum] As [Остаток на начало периода],
0 As [Приход],
0 As [Расход],
t1.[FSum] As [Остаток на конец периода]
From (Select [Продукт], Sum([Приход] - [Расход]) As FSum From [База$] Where [Дата] < ? Group By [Продукт] Order By [Продукт]) t1

Union All

Select
t2.[Дата],
t2.[Продукт],
t2.[Остаток на начало периода],
t2.[Приход],
t2.[Расход],
t2.[Остаток на конец периода]
From (Select [Дата], [Продукт], [Остаток на начало периода], [Приход], [Расход], [Остаток на конец периода] From [База$] Where [Дата] >= ? And [Дата] <= ? Order By [Дата], [Продукт]) t2


а точно такой же, повторенный через Union All - нет?

Select
Null As [Дата],
t1.[Продукт],
t1.[FSum] As [Остаток на начало периода],
0 As [Приход],
0 As [Расход],
t1.[FSum] As [Остаток на конец периода]
From (Select [Продукт], Sum([Приход] - [Расход]) As FSum From [База$] Where [Дата] < ? Group By [Продукт] Order By [Продукт]) t1

Union All

Select
t2.[Дата],
t2.[Продукт],
t2.[Остаток на начало периода],
t2.[Приход],
t2.[Расход],
t2.[Остаток на конец периода]
From (Select [Дата], [Продукт], [Остаток на начало периода], [Приход], [Расход], [Остаток на конец периода] From [База$] Where [Дата] >= ? And [Дата] <= ? Order By [Дата], [Продукт]) t2

Union All

Select
Null As [Дата],
t1.[Продукт],
t1.[FSum] As [Остаток на начало периода],
0 As [Приход],
0 As [Расход],
t1.[FSum] As [Остаток на конец периода]
From (Select [Продукт], Sum([Приход] - [Расход]) As FSum From [База$] Where [Дата] < ? Group By [Продукт] Order By [Продукт]) t1

Union All

Select
t2.[Дата],
t2.[Продукт],
t2.[Остаток на начало периода],
t2.[Приход],
t2.[Расход],
t2.[Остаток на конец периода]
From (Select [Дата], [Продукт], [Остаток на начало периода], [Приход], [Расход], [Остаток на конец периода] From [База$] Where [Дата] >= ? And [Дата] <= ? Order By [Дата], [Продукт]) t2

Неактивен

 

#3 28.04.2024 21:00:13

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5833

Re: Как соединить две схожие таблицы, полученные SQL-запросом?

Не работает - выдает ошибку или что-то другое?
Предположу, что проблемы в дублировании t1 и t2. Т.е. при повторении запроса через Union All во второй части вместо  t1 и t2 нужно использовать другие алиасы, например, t3 и t4 или t11 и t22.

Неактивен

 

#4 29.04.2024 14:09:39

sasch
Участник
Зарегистрирован: 22.04.2024
Сообщений: 4

Re: Как соединить две схожие таблицы, полученные SQL-запросом?

Выдает ошибку: "Несоответствие типов данных в выражении условия отбора", хотя не пойму, причем здесь это: первая часть запроса же работает, а вторая часть - такая же как и первая.
Переименовывать на t3 и t4 - это первое, что я попробовал, но не помогло.

Неактивен

 

#5 Сегодня 11:32:21

sasch
Участник
Зарегистрирован: 22.04.2024
Сообщений: 4

Re: Как соединить две схожие таблицы, полученные SQL-запросом?

Я заметил следующую закономерность: все запросы в различных комбинациях отлично работают через Union All до тех пор, пока в тексте запроса присутствуют до трех включительно вопросительных знаков "?". Как только появляется четвертый "?", Excel предлагает добавить Параметр, и после добавления Параметра - все клинит. Подскажите кто знает, возможно где-то существуют настройки Параметров, Имен параметров или что-то с этим связанное?

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson