Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/SQL-выборка из нескольких таблиц Excel - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
SQL-выборка из нескольких таблиц Excel
barbanevosa Дата: Суббота, 02.05.2020, 04:07 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 1
Репутация: 0 ±
Замечаний: 0% ±

Excel 2019
Необходимо выбрать данные из двух таблиц, размещенных в одной книге Excel, соединив их по ключу, проведя группировку с подсчетом количества и упорядочить вывод по двум столбцам. Классическая SQL-задача, решаемая с помощью одного запроса.

Подключаюсь к таблицам с помощью ODBC для получения необходимого объекта QueryTable, постигая особенности SQL запросов в среде VBA. Связывание через INNER JOIN проблем не создало, с группировкой тоже разобрался. Столкнулся с ограничением того, что при использовании GROUP BY совместно с ORDER BY упорядочивать можно только по одному столбцу. Пробую решить через CTE, определяя предварительный запрос через WITH, а затем пытаясь обычным SELECT выбрать из него данные с двумя уровнями упорядочивания. Но нет, похоже что и WITH не работает.

Подскажите, пожалуйста, в какую сторону копать? Сам прекрасно владею SQL, но в Excel с этим просто квест какой-то.
 
Ответить
СообщениеНеобходимо выбрать данные из двух таблиц, размещенных в одной книге Excel, соединив их по ключу, проведя группировку с подсчетом количества и упорядочить вывод по двум столбцам. Классическая SQL-задача, решаемая с помощью одного запроса.

Подключаюсь к таблицам с помощью ODBC для получения необходимого объекта QueryTable, постигая особенности SQL запросов в среде VBA. Связывание через INNER JOIN проблем не создало, с группировкой тоже разобрался. Столкнулся с ограничением того, что при использовании GROUP BY совместно с ORDER BY упорядочивать можно только по одному столбцу. Пробую решить через CTE, определяя предварительный запрос через WITH, а затем пытаясь обычным SELECT выбрать из него данные с двумя уровнями упорядочивания. Но нет, похоже что и WITH не работает.

Подскажите, пожалуйста, в какую сторону копать? Сам прекрасно владею SQL, но в Excel с этим просто квест какой-то.

Автор - barbanevosa
Дата добавления - 02.05.2020 в 04:07
krosav4ig Дата: Суббота, 02.05.2020, 06:16 | Сообщение № 2
Группа: Друзья
Ранг: Старожил
Сообщений: 2347
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Дайте файлик с таблицами пощупать
а то чего-то я никакого ограничения не обнаружил
[vba]
Код
SELECT *
FROM
    (
        SELECT
            t1.a            ,
            COUNT(t1.b) AS b,
            t2.d
        FROM
            `Лист1$` t1
            INNER JOIN
                `Лист2$` t2
            ON
                t1.a,
                t2.c
        GROUP BY
            t1.a,
            t2.d
    )
ORDER BY
    a,
    b
[/vba]


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Сообщение отредактировал krosav4ig - Суббота, 02.05.2020, 06:26
 
Ответить
СообщениеДайте файлик с таблицами пощупать
а то чего-то я никакого ограничения не обнаружил
[vba]
Код
SELECT *
FROM
    (
        SELECT
            t1.a            ,
            COUNT(t1.b) AS b,
            t2.d
        FROM
            `Лист1$` t1
            INNER JOIN
                `Лист2$` t2
            ON
                t1.a,
                t2.c
        GROUP BY
            t1.a,
            t2.d
    )
ORDER BY
    a,
    b
[/vba]

Автор - krosav4ig
Дата добавления - 02.05.2020 в 06:16
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!