SQLRU.net
Разработка приложений баз данных

Начало » Использование СУБД » Другие СУБД » Как соединить две схожие таблицы, полученные SQL-запросом?
Как соединить две схожие таблицы, полученные SQL-запросом? [сообщение #4978] Thu, 25 April 2024 20:51 Переход к следующему сообщению
sasch в настоящее время не в онлайне  sasch
Сообщений: 5
Зарегистрирован: April 2024
Junior Member
Добрый день, уважаемые форумчане! Есть у меня небольшой файл Excel с SQL-запросом. В данный момент возникла необходимость присоединить к сформированной запросом таблице снизу точно такую же по структуре таблицу, из того же источника, только с несколькими другими столбцами. То есть нужно сделать так, чтобы к имеющейся таблице снизу добавилась точно такая же таблица, столбцы которой впоследствии можно будет изменять. При использовании второго "Union All" и последующего за ним кода программа не добавляет таблицу, а ругается на "Несоответствие типов данных в выражении условия отбора". Может подскажете в чем ошибка?

Файл-пример работает при размещении в корне диcка D.
  • Вложение: Фрукты.xlsm
    (Размер: 14.46KB, Загружено 38 раз)
Re: Как соединить две схожие таблицы, полученные SQL-запросом? [сообщение #4987 является ответом на сообщение #4978] Sun, 28 April 2024 12:40 Переход к предыдущему сообщениюПереход к следующему сообщению
sasch в настоящее время не в онлайне  sasch
Сообщений: 5
Зарегистрирован: April 2024
Junior Member
почему-то этот запрос работает:

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
Re: Как соединить две схожие таблицы, полученные SQL-запросом? [сообщение #5002 является ответом на сообщение #4987] Thu, 02 May 2024 10:56 Переход к предыдущему сообщениюПереход к следующему сообщению
BlackEric в настоящее время не в онлайне  BlackEric
Сообщений: 299
Зарегистрирован: June 2022
Senior Member
Ошибку можно было и показать.

Если ошибка из-за типов данных, то сделайте приведение в запросе.
Re: Как соединить две схожие таблицы, полученные SQL-запросом? [сообщение #5014 является ответом на сообщение #4978] Sat, 04 May 2024 11:50 Переход к предыдущему сообщениюПереход к следующему сообщению
sasch в настоящее время не в онлайне  sasch
Сообщений: 5
Зарегистрирован: April 2024
Junior Member
/index.php/fa/257/0/

я бухгалтер и совсем не понимаю, как это сделать, хоть и пытаюсь разобраться уже больше месяца... не могу понять, причем здесь "несоответствие типов данных", ведь первая часть запроса же работает, а вторая часть - точно такая же как и первая? и что значит "приведение"?
  • Вложение: 1.png
    (Размер: 11.93KB, Загружено 132 раза)
Re: Как соединить две схожие таблицы, полученные SQL-запросом? [сообщение #5016 является ответом на сообщение #5014] Mon, 06 May 2024 10:17 Переход к предыдущему сообщениюПереход к следующему сообщению
BlackEric в настоящее время не в онлайне  BlackEric
Сообщений: 299
Зарегистрирован: June 2022
Senior Member
Преобразование типов
Re: Как соединить две схожие таблицы, полученные SQL-запросом? [сообщение #5098 является ответом на сообщение #4978] Fri, 24 May 2024 11:33 Переход к предыдущему сообщениюПереход к следующему сообщению
sasch в настоящее время не в онлайне  sasch
Сообщений: 5
Зарегистрирован: April 2024
Junior Member
Я заметил следующую закономерность: все запросы в различных комбинациях отлично работают через Union All до тех пор, пока в тексте запроса присутствуют до трех включительно вопросительных знаков "?". Как только появляется четвертый "?", Excel предлагает добавить Параметр, и после добавления Параметра - все клинит. Подскажите кто знает, возможно где-то существуют настройки Параметров, Имен параметров или что-то с этим связанное?
Re: Как соединить две схожие таблицы, полученные SQL-запросом? [сообщение #5099 является ответом на сообщение #5098] Fri, 24 May 2024 14:06 Переход к предыдущему сообщениюПереход к следующему сообщению
SD в настоящее время не в онлайне  SD
Сообщений: 357
Зарегистрирован: August 2022
Senior Member
Знаки вопроса это и есть параметры. Лучше задайся вопросом откуда Ёксель берёт значения для первых трёх, если явно их определить начинает просить только с четвёртого.
Re: Как соединить две схожие таблицы, полученные SQL-запросом? [сообщение #5100 является ответом на сообщение #5099] Fri, 24 May 2024 14:26 Переход к предыдущему сообщению
sasch в настоящее время не в онлайне  sasch
Сообщений: 5
Зарегистрирован: April 2024
Junior Member
Три первые параметра Excel берет из двух известных ячеек и все работает. Когда я пытаюсь назначить еще три параметра (хоть в этих же ячейках, хоть в других) - ничего не работает, выдает "несоответствие типов данных".
Предыдущая тема: [Elasticsearch] Как мы обновили старый кластер Elasticsearch на 3 ПБ без простоев
Переход к форуму:
  


Текущее время: Mon May 27 04:23:15 GMT+3 2024

Общее время, затраченное на создание страницы: 0.00806 секунд