Excel запрос sql


Используйте возможности SQL для создания запросов в Excel и напрямую к таблицам Excel

Порой таблицы Excel постепенно разрастаются настолько, что с ними становится неудобно работать. Поиск дубликатов, группировка, сложная сортировка, объединение нескольких таблиц в одну, т.д. — превращаются в действительно трудоёмкие задачи. Теоретически эти задачи можно легко решить с помощью языка запросов SQL… если бы только можно было составлять запросы напрямую к данным Excel.

Инструмент XLTools «SQL запросы» расширяет Excel возможностями языка структурированных запросов:

  • Создание запросов SQL в интерфейсе Excel и напрямую к Excel таблицам

  • Автогенерация запросов SELECT и JOIN

  • Доступны JOIN, ORDER BY, DISTINCT, GROUP BY, SUM и другие операторы SQLite

  • Создание запросов в интуитивном редакторе с подстветкой синтаксиса

  • Обращение к любым таблицам Excel из дерева данных

Перед началом работы добавьте «Всплывающие часы» в Excel

«SQL запросы» – это один из 20+ инструментов в составе надстройки XLTools для Excel. Работает в Excel 2019, 2016, 2013, 2010, десктоп Office 365.

Скачать XLTools для Excel

– пробный период дает 14 дней полного доступа ко всем инструментам.

Как превратить данные Excel в реляционную базу данных и подготовить их к работе с SQL запросами

По умолчанию Excel воспринимает данные как простые диапазоны. Но SQL применим только к реляционным базам данных. Поэтому, прежде чем создать запрос, преобразуйте диапазоны Excel в таблицу (именованный диапазон с применением стиля таблицы):

  1. Выделите диапазон данных На вкладке «Главная» нажмите Форматировать как таблицу Примените стиль таблицы.
  2. Выберите таблицу Откройте вкладку «Конструктор» Напечатайте имя таблицы.

    Напр., «КодТовара».

  3. Повторите эти шаги для каждого диапазона, который планируете использовать в запросах.

    Напр., «КодТовара», «ЦенаРозн», «ОбъемПродаж», т.д.

  4. Готово, теперь эти таблицы будут служить реляционной базой данных и готовы к SQL запросам.

Как создать и выполнить запрос SQL SELECT к таблицам Excel

Надстройка «SQL запросы» позволяет выполнять запросы к Excel таблицам на разных листах и в разных книгах. Для этого убедитесь, что эти книги открыты, а нужные данные отформатированы как именованные таблицы.

  1. Нажмите кнопку Выполнить SQL на вкладке XLTools Откроется окно редактора.
  2. В левой части окна находится дерево данных со всеми доступными таблицами Excel.

    Нажатием на узлы открываются/сворачиваются поля таблицы (столбцы).

  3. Выберите целые таблицы или конкретные поля.

    По мере выбора полей, в правой части редактора автоматически генерируется запрос SELECT.

    Внимание: редактор запросов SQL автоматически подсвечивает синтаксис.

  4. Укажите, куда необходимо поместить результат запроса: на новый или существующий лист.

  5. Нажмите «Выполнить» Готово!

Операторы Left Join, Order By, Group By, Distinct и другие SQLite команды в Excel

XLTools использует стандарт SQLite. Пользователи, владеющие языком SQLite, могут создавать самые разнообразные запросы:

  • LEFT JOIN – объединить две и более таблиц по общему ключевому столбцу

  • ORDER BY – сортировка данных в выдаче запроса

  • DISTINCT – удаление дубликатов из результата запроса

  • GROUP BY – группировка данных в выдаче запроса

  • SUM, COUNT, MIN, MAX, AVG и другие операторы

Совет: вместо набора названий таблиц вручную, просто перетягивайте названия из дерева данных в область редактора SQL запросов.

Как объединить две и более Excel таблиц с помощью надстройки «SQL запросы»

Вы можете объединить несколько таблиц Excel в одну, если у них есть общее ключевое поле. Предположим, вам нужно объединить несколько таблиц по общему столбцу «КодТовара»:

  1. Нажмите Выполнить SQL на вкладке XLTools Выберите поля, которые нужно включить в объединённую таблицу.

    По мере выбора полей, автоматически генерируется запрос SELECT и LEFT JOIN.

  2. Укажите, куда необходимо поместить результат запроса: на новый или существующий лист.

  3. Нажмите «Выполнить» Готово! Объединённая таблица появится в считанные секунды.

Выполнять SQL-запросы к файлам Excel - Power Automate

  • Статья
  • Чтение занимает 3 мин
  • Участники: 2

Были ли сведения на этой странице полезными?

Да Нет

Хотите оставить дополнительный отзыв?

Отзывы будут отправляться в корпорацию Майкрософт. Нажав кнопку "Отправить", вы разрешаете использовать свой отзыв для улучшения продуктов и служб Майкрософт. Политика конфиденциальности.

Отправить

В этой статье

Хотя действия Excel могут обрабатывать большинство сценариев автоматизации Excel, запросы SQL могут более эффективно извлекать значительные объемы данных Excel и работать с ними.

Предположим, поток должен изменить только те реестры Excel, которые содержат определенное значение. Чтобы реализовать эту функциональность без SQL-запросов, вам потребуются циклы, условные выражения и несколько действий Excel.

Напротив, вы можете реализовать эту функциональность с помощью SQL-запросов, используя только два действия: действие Открыть SQL-подключение и действие Выполнять инструкции SQL.

Откройте SQL-подключение к файлу Excel

Перед запуском SQL-запроса вы должны открыть подключение с файлом Excel, к которому вы хотите получить доступ.

Чтобы установить подключение, создайте новую переменную с именем %Excel_File_Path% и инициализируйте его, указав путь к файлу Excel. При желании вы можете пропустить этот шаг и использовать жестко заданный путь к файлу позже в потоке.

Теперь разверните действие Открыть SQL-подключение и заполните следующую строку подключения в его свойствах.

Provider=Microsoft.ACE.OLEDB.12.0;Data Source=%Excel_File_Path%;Extended Properties="Excel 12.0 Xml;HDR=YES";

Откройте SQL-подключение к файлу Excel, защищенному паролем

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

Для этого запустите файл Excel с помощью действие Запустить Excel. Файл защищен паролем, поэтому введите соответствующий пароль в поле Пароль.

Затем разверните соответствующие действия автоматизации пользовательского интерфейса и перейдите к Файл > Информация > Защита книги > Зашифровать паролем. Дополнительные сведения об автоматизации пользовательского интерфейса и о том, как использовать соответствующие действия можно найти в Автоматизировать классические потоки.

После выбора Зашифровать паролем заполните пустую строку во всплывающем диалоговом окне, используя действие Заполнить текстовое поле в окнах. Чтобы заполнить пустую строку, используйте следующее выражение: %""%.

Чтобы нажать на ОК в диалоговом окне и применить изменения, разверните действие Нажать кнопку в окне.

Наконец, разверните действие Закрыть Excel, чтобы сохранить незащищенную книгу как новый файл Excel.

После сохранения файла следуйте инструкциям в Открытие SQL-подключения к файлам Excel, чтобы открыть к нему подключение.

Когда работа с файлом Excel будут завершена, используйте действие Удалить файлы для удалению незащищенной копии файла Excel.

Чтение содержимого электронной таблицы Excel

Хотя действие Считать с листа Excel может считывать содержимое листа Excel, циклы могут занять значительное время для итерации полученных данных.

Более эффективный способ получения определенных значений из электронных таблиц — это рассматривать файлы Excel как базы данных и выполнять на них SQL-запросы. Этот подход быстрее и увеличивает производительность потока.

Чтобы получить все содержимое электронной таблицы, вы можете использовать следующий SQL-запрос в действие Выполнять инструкции SQL.

SELECT * FROM [SHEET$] 

Note

Чтобы применить этот SQL-запрос в ваших потоках, замените заполнитель SHEET именем электронной таблицы, к которой вы хотите получить доступ.

Чтобы получить строки, содержащие определенное значение в определенном столбце, используйте следующий запрос SQL:

SELECT * FROM [SHEET$] WHERE [COLUMN NAME] = 'VALUE' 

Note

Чтобы применить этот SQL-запрос в ваших потоках, замените:

  • SHEET именем электронной таблицы, к которой вы хотите получить доступ
  • COLUMN NAME столбцом, содержащим значение, которое вы хотите найти. Столбцы в первой строке листа Excel идентифицируются как имена столбцов таблицы.
  • VALUE значением, которое вы хотите найти

Удалить данные из строки Excel

Хотя Excel не поддерживает SQL-запрос DELETE, вы можете использовать запрос UPDATE, чтобы установить для всех ячеек определенной строки значение NULL.

Точнее, вы можете использовать следующий SQL-запрос:

UPDATE [SHEET$] SET [COLUMN1]=NULL, [COLUMN2]=NULL WHERE [COLUMN1]='VALUE' 

При разработке потока вы должны заменить заполнитель SHEET именем электронной таблицы, к которой вы хотите получить доступ.

Заполнители COLUMN1 а также COLUMN2 представляют имена всех существующих столбцов. В этом примере столбцов два, но в реальном сценарии количество столбцов может быть другим. Столбцы в первой строке листа Excel идентифицируются как имена столбцов таблицы.

Часть запроса [COLUMN1]='VALUE' определяет строку, которую вы хотите обновить. В вашем потоке используйте имя столбца и значение в зависимости от того, какая комбинация однозначно описывает строки.

Получить данные Excel, кроме определенной строки

В некоторых сценариях может потребоваться получить все содержимое электронной таблицы Excel, кроме определенной строки.

Удобный способ добиться этого результата — установить для значений нежелательной строки значение NULL, а затем получить все значения, кроме нулевых.

Чтобы изменить значения определенной строки в электронной таблице, вы можете использовать SQL-запрос UPDATE, представленный в Удалить данные из строки Excel:

UPDATE [SHEET$] SET [COLUMN1]=NULL, [COLUMN2]=NULL WHERE [COLUMN1]='VALUE' 

Затем выполните следующий SQL-запрос, чтобы получить все строки электронной таблицы, не содержащие значений NULL:

SELECT * FROM [SHEET$] WHERE [COLUMN1] IS NOT NULL OR [COLUMN2] IS NOT NULL 

Note

Заполнители COLUMN1 а также COLUMN2 представляют имена всех существующих столбцов. В этом примере столбцов два, но в реальной таблице количество столбцов может быть другим. Все столбцы в первой строке листа Excel идентифицируются как имена столбцов таблицы.

Sql запрос из excel в excel

SQL запросы в Microsoft Excel

​Смотрите также​ SQL cервер" -​ формы работы с​ 42745, 0, 42746,​: Все равно, спасибо​ из БД через​ (​ на базе данных.​ бесплатного пользования надстройкой​ по кнопке​, которая размещена на​ файла, после чего​Урок: «Умные» таблицы в​ сам редактор SQL​, стояла галочка, если​«Начать пробный период»​

​ После этого запустится​SQL – популярный язык​

​ ввожу имя сервера​ Access через VBA​ 2, 1, 2,​

Создание SQL запроса в Excel

​ )​ запрос rsORA.Open 'SELECT...(тело​сервер​ При запуске запроса​ ограничен всего двумя​«Из других источников»​ ленте в блоке​ кликнуть на кнопку​ Экселе​ запросов. В нем​ заголовки в вашем​.​ окно, в котором​ программирования, который применяется​ - выбираю базу​ Excel - согласен.​ 'Кратко', 'Полно')​

Способ 1: использование надстройки

​Кстати, все заработало,​ запроса)', cnORA 'Вставка​и​ на ее языке​ календарными неделями.​, которая размещается на​ инструментов с одноименным​«OK»​Существует также способ создать​ нужно писать программный​ массиве действительно присутствуют.​Далее мы возвращаемся к​ нужно будет подтвердить​ при работе с​ данных из выпадающего​ Но Access использую​Типы данных в​ когда я изменил​ даннных из полученого​

  1. ​Da​ записи другим пользователем,​​Автор: Максим Тютюшев​​ ленте в блоке​ названием.​.​ SQL запрос к​ код. Наименования столбцов​ Затем жмите на​ окну лицензии. Как​ согласие с лицензионным​ базами данных (БД).​ списка - выбираю​ только для хранения​ Access:​ процедуру подключения так:​ набора записей '1-й​йства базы данных​ вам будет предложено,​​Примечание:​​ инструментов​

  2. ​После этого запускается окно​Вслед за этим запускается​ выбранному источнику данных​ выбранной таблицы там​

  3. ​ кнопку​ видим, введенные вами​ соглашением на использование​ Хотя для операций​ интересующую таблицу -​ данных. Сделать полноценное​NoParent - число​​With conn .ConnectionString​​ вариант - все​

  4. ​), вы увидите в​ чтобы убедиться, что​

  5. ​Мы стараемся как​«Получение внешних данных»​ подключения к книге.​ окно выбора таблицы​ с помощью встроенных​ уже будут отображаться​«OK»​​ значения уже отображаются.​​ продукции компании Microsoft​

  6. ​ с базами данных​ указываю диапазон, куда​ приложение в Access​NoResponsible - число​ = 'Provider=MSDAORA; Data​ полученные записи вставляются​ строке, чтобы запросить​ вы знаете, запросов,​ можно оперативнее обеспечивать​. На этот раз​ В нем мы​ в указанной базе​ инструментов Эксель.​ автоматически. Выбор столбцов​​.​​ Теперь нужно просто​ — NET Framework​ в пакете Microsoft​ следует вставить данные.​ не получилось (слишком​​EosdoTask - boolean​​ Source=var1; ' &​

  7. ​ в виде талицы​ доступ к серверу​ которые будут вычисляться​ вас актуальными справочными​ из раскрывшегося списка​ видим наименование ранее​ данных. В центральной​Запускаем программу Excel. После​ для обработки производится​​После этого весь указанный​​ нажать на кнопку​

  8. ​ 4. Для этого​ Office имеется отдельное​Но при этом​ сложно для моих​Reviewer - число​ _ 'User ID=var2;​​ на лист Range('адрес​​ или базы данных​

  9. ​ с учетными данными.​ материалами на вашем​ выбираем вариант​ подключенной нами базы​ области следует выбрать​​ этого перемещаемся во​​ с помощью команды​ диапазон будет отформатирован,​«OK»​ всего лишь нужно​ приложение — Access,​ получаю ЦЕЛУЮ таблицу,​ скромных знаний), а​Responsible - число​ Password=var3;' .Open End​ верхней левой ячейки').CopyFromRecordset​
    ​ (если сведения о​Power Query позволяет задать​ языке. Эта страница​«С сервера SQL Server»​​ данных. Если подключенных​​ наименование нужной таблицы​​ вкладку​​SELECT​ как таблица, что​.​​ кликнуть по кнопке​​ но программа Excel​ а мне нужен​ если оставить набор​GroupSub - текст​ With​ rsORA '2-й вариант​ запросе доступа указан​ запрос языке базы​ переведена автоматически, поэтому​.​ БД несколько, то​

  10. ​ (если их несколько),​«Данные»​. Нужно оставить в​ повлияет как на​После того, как вы​«Принимаю»​ тоже может работать​ только лишь один​ таблиц - точно​DateStart - Date/time​pauletto​ - вставляются определенные​ в Power BI​ данных в поле​​ ее текст может​​Происходит открытие окна подключения​ выбираем нужную и​ а потом нажать​​.​​ перечне только те​ его свойства (например,​ проделаете вышеуказанные манипуляции,​внизу окошка.​ с БД, делая​​ столбец с конкретным​​ какой-нибудь пользователь своими​

  11. ​DateEndPlan - date/time​: Как сделать связь​ поля в заданную​ для источника данных).​Инструкцию SQL​ содержать неточности и​ к серверу баз​ выделяем её. После​ на кнопку​В блоке инструментов​ колонки, которые вы​ растягивание), так и​ в вашем экземпляре​После этого установщик производит​ SQL запросы. Давайте​​ названием.​​ кривыми ручонками влезет​​Time - число​​ с базой данных​ ячейку While Not​ Дополнительные сведения о​​, при подключении к​​ грамматические ошибки. Для​​ данных. В поле​​ этого щелкаем по​«Далее»​«Получение внешних данных»​

  12. ​ желаете, чтобы указанная​ на визуальное отображение.​ Эксель появится новая​ загрузку обязательных файлов​ узнаем, как различными​Заранее благодарен!​ в запрос или​​Deadline - date/time​​ через ADO ,чтобы​

  13. ​ rsORA.EOF .... Range('адрес​ запросе доступа к​ базе данных. В​ нас важно, чтобы​«Имя сервера»​​ кнопке​​.​

  14. ​, который расположен на​ команда обрабатывала.​​ Указанной таблице будет​​ вкладка –​​ и начинает процесс​​ способами можно сформировать​

  15. ​SLAVICK​ таблицу и что-то​Importance - число​ результат какого-то запроса​ ячейки')=rsORA.Fields(номер поля из​ источнику данных читайте​ приведенном ниже примере​ эта статья была​

    ​указываем наименование того​«Свойства…»​После этого открывается окно​ ленте, жмем на​Далее пишется текст команды,​ присвоено имя. Чтобы​«XLTools»​ их установки.​ подобный запрос.​: А если так:​ поменяет, а работая​Status - число​​ в БД выводился​​ запроса - начинается​ Запросов на доступ​ мы Импорт данных​ вам полезна. Просим​ сервера, к которому​

    ​в правой части​ сохранения файла подключения​ значок​ которую вы хотите​ его узнать и​. Но не спешим​Далее откроется окно, в​

    • ​Скачать последнюю версию​​"Данные" - "Из​
    • ​ в Excel -​​DateEndFact - date/time​
    • ​ в ячейку Excel​​ с 0).Value .....​
    • ​ к внутренним источникам​​ из базы данных​
    • ​ вас уделить пару​​ выполняем подключение. В​

    ​ окна.​ данных. Тут указаны​«Из других источников»​​ применить к выбранным​​ по желанию изменить,​​ переходить в неё.​​ котором вы должны​​ Excel​​ других источников" --​​ врятли куда-то полезет,​​TaskShortText - текст​​Alex77755​​ rsORA.MoveNext Wend 'Закрываем​

    ​ данных.​ SQL Server, с​ секунд и сообщить,​ группе параметров​Запускается окно свойств подключения.​ основные сведения о​. Открывается список дальнейших​ объектам. Команды составляются​ клацаем по любому​ Прежде, чем создавать​ подтвердить свое согласие​Читайте также: Как создать​ "Из Microsoft Query"​

    ​ нажал на кнопочку​TaskFullText - текст​: А стандартный метод​ переменные rsORA.Close cnORA.Close​​Если установить подключение данных​​ помощью запроса на​ помогла ли она​«Учетные сведения»​ Перемещаемся в нем​

​ подключении, которое мы​ вариантов действий. Выбираем​

Способ 2: использование встроенных инструментов Excel

​ при помощи специальных​ элементу массива. На​ запрос, нужно преобразовать​ на установку этой​ базу данных в​

  1. ​Если нет подключения​ и выгрузил на​Уже всю голову​​ не устраивает?​​Sinister​

  2. ​ результат возвращается в​​ ее языке. Процедура​​ вам, с помощью​нужно определиться, как​ во вкладку​​ настроили. В данном​​ в нем пункт​ операторов. Вот основные​ ленте появляется дополнительная​​ табличный массив, с​​ надстройки. Для этого​

  3. ​ Экселе​​ в списке, то:​​ лист данные, нажал​ сломал. Все значения​​Данные - Импорт​​: У меня на​Редакторе запросов​​ работает аналогично всех​​ кнопок внизу страницы.​

  4. ​ именно будет происходить​​«Определение»​​ окне достаточно нажать​«Из мастера подключения данных»​ операторы SQL:​​ группа вкладок –​​ которым мы будем​ нужно щелкнуть по​​Язык запросов SQL отличается​​ "новый источник данных"​

  5. ​ на кнопочку -​ текстовые - в​ внешних данных -​ выражении 'cnORA As​.​ баз данных, поддерживаемые​ Для удобства также​ подключение: с использованием​. В поле​ на кнопку​.​​ORDER BY​​«Работа с таблицами»​ работать, в так​ кнопке​ от аналогов тем,​​ - - и​​ добавил или изменил.​ кавычках (апострофах), других​ создать запрос.​ ADODB.Connection' возникает ошибка​Фигуры данных как​ Power Query.​ приводим ссылку на​ проверки подлинности Windows​«Текст команды»​«Готово»​​Запускается​​– сортировка значений;​

  6. ​. Перемещаемся во вкладку​ называемую, «умную» таблицу​«Установить»​ что с ним​ создать​ Плюс формат Excel​ типов данных -​указать путь, выбрать​ компиляции. Для выполнение​​ вы предпочитаете, затем​​Подключение к базе данных​

  7. ​ оригинал (на английском​ или путем введения​, находящееся внизу текущего​.​Мастер подключения данных​JOIN​«Конструктор»​ и присвоить ей​​.​​ работают практически все​

  8. ​Дальше выбираете любой​ удобнее для конечного​ без кавычек. Дату​ запрос​ приведенного Вами кода​ нажмите кнопку​ SQL Server с​
    • ​ языке) .​​ имени пользователя и​
    • ​ окна, записываем SQL​​На листе Excel запускается​
    • ​. В перечне типов​​– объединение таблиц;​

    ​, размещенную в ней.​ имя.​Затем начинается процедура установки​ современные системы управления​ столбец, любой таблицы​ пользователя, не надо​ перевел из формата​pauletto​ требуется что-то дополнительно​Применить и закрыть​ помощью Power Query.​Примечание:​ пароля. Выставляем переключатель​ команду в соответствии​​ окошко импорта данных.​​ источников данных выбираем​

    ​GROUP BY​ На ленте в​Для этого выделяем​​ непосредственно самой надстройки.​​ БД. Поэтому вовсе​

  9. ​Далее--Далее​ ничего объяснять.​ представления даты (ДД.ММ.ГГГГ)​:​​ устанавливать кроме Офиса​​для сохранения изменений​ На вкладке ленты​​ ​​ согласно принятому решению.​ с синтаксисом данного​ В нем можно​«ODBC DSN»​

  10. ​– группировка значений;​ блоке инструментов​ указанный массив или​После её завершения откроется​ не удивительно, что​Если нужно дополнительно​Кстати, "2" -​ в числовое представление..​Alex77755​ 2000, в котором​ и импортировать данные​​POWER QUERY​​Power Query​ Если вы выбрали​

  11. ​ языка, о котором​ указать, в каком​. После этого щелкаем​​SUM​​«Свойства»​​ любой его элемент.​​ окно, в котором​ такой продвинутый табличный​ подправить запрос, то​ это дата 01.01.1900.​snipe​, а не могли​ я предполагаю его​​ листа.​​щелкните​известна как​​ второй вариант, то​​ мы вкратце говорили​

  12. ​ именно виде вы​ по кнопке​– суммирование значений;​в поле​ Находясь во вкладке​​ будет сообщаться, что​​ процессор, как Эксель,​ Галку "Просмотр или​ Так обозначаю отсутствие​: значение​ бы показать пример​ запускать из Excel?​Импорт данных из внешних​Из базы данных​Получение и преобразование​

Способ 3: подключение к серверу SQL Server

​ кроме того в​ при рассмотрении​ хотите, чтобы данные​«Далее»​DISTINCT​«Имя таблицы»​«Главная»​ инсталляция успешно выполнена.​ обладающий многими дополнительными​ изменение данных в​ даты, например, нет​2​

  1. ​Alex77755​meja​​ источников​​>​в Excel 2016.​​ соответствующие поля придется​​Способа 1​ были представлены:​.​​– удаление дубликатов.​​будет указано наименование​щелкаем по значку​ В указанном окне​​ функциями, тоже умеет​​ "Microsoft Query", если​

  2. ​ срока у задачи​(это же какая​: А что мешает​​: Нужно подключить библиотеку​​Sinister​Из базы данных SQL​ Приведенные ниже сведения​ ввести имя пользователя​​. Затем жмем на​​Таблица​Открывается окно​Кроме того, в построении​ массива, которое ему​«Форматировать как таблицу»​ достаточно нажать на​ работать с этим​ не нужно, то​ - устанавливаю красивое​ дата получается)​ самому нажать Данные​ Microsoft ActiveX Data​: Люди! Подскажите, pls,​ Server​ относятся к оба.​ и пароль. После​ кнопку​​;​​Мастера подключения данных​ запроса можно использовать​ присвоила программа автоматически.​. Он размещен на​ кнопку​ языком. Пользователи, владеющие​ можно "вернуть данные​ нулевое значение ("0"​может дату вводить​

​ - Импорт внешних​ Objects 2.x Library​ как написать макрос,​.​ Подробнее об этом​ того, как все​«OK»​Отчёт сводной таблицы​, в котором нужно​ операторы​При желании это наименование​ ленте в блоке​«Закрыть»​ языком SQL, используя​ в Microsoft Excel"​ - не такая​ все-таки как дату​ данных - создать​ в Tools/Refrences​ который по данным​Во всплывающем окне​ читайте в статье​ настройки проведены, жмем​

​.​

lumpics.ru>

Импорт данных из базы данных с помощью запроса на ее языке (Power Query)

​;​​ выбрать тип источника.​MAX​ пользователь может изменить​ инструментов​.​ Excel, могут упорядочить​ и ГОТОВО​ ровная дата получается​ (возможно надо учесть​ запрос.​Sinister​ запроса к базе​База данных Microsoft SQL​ Получение и преобразование​ на кнопку​После этого производится автоматический​Сводная диаграмма​ Выбираем наименование​,​ на более информативное,​«Стили»​

​Надстройка установлена и теперь​​ множество различных разрозненных​​Тут можно править​​ )​​ что формат америкоский​​Alex77755​: Все очень хорошо​ данных Oracle устанавливал​:​ в Excel 2016.​«Далее»​ возврат к окну​

​.​«MS Access Database»​MIN​ просто вписав в​. После этого открывается​ можно запускать файл​ табличных данных.​ SQL запрос.​Kontugenyi​ мм.дд.гггг) #12.31.2016#​: Показаны не попорядку​ скомпилировалось, спасибо Только​ бы значения переменных​Укажите​Power Query обеспечивает гибкость,​. После выполнения этого​ подключения к книге.​Выбираем нужный вариант. Чуть​. Затем щелкаем по​,​ поле с клавиатуры​

​ список выбора различных​​ Excel, в котором​Но для начала давайте​После того как​, очевидная ошибка в​лично мое мнение​1=последний​ осталась последняя проблема​ или ячеек рабочего​сервер​ чтобы импортировать данные​ действия происходит подключение​ Нам остается только​ ниже требуется указать,​ кнопке​AVG​ желаемый вариант и​

​ стилей. Выбираем тот​ нужно организовать SQL​ рассмотрим вариант, когда​​ создали нужный запрос:​​ использовании зарезервированного слова​ что делать форму​Kontugenyi​ - это runtime​ листа? Очень хотелось​и​ из самых разных​ к указанному серверу.​ кликнуть по кнопке​ куда именно следует​«Далее»​

  1. ​,​ нажав на клавишу​ стиль, который вы​ запрос. Вместе с​​ из Экселя можно​​Файл -- вернуть​​Time​​ в Excel для​​: Добрый день, форумчане!​ error -2147217843 (80040e4d)​​ бы пример соединения​

  2. ​базу данных​​ видов баз данных,​​ Дальнейшие действия по​

    1. ​«Обновить»​​ поместить данные: на​​.​​COUNT​​Enter​ считаете нужным. На​ листом Эксель открывается​ создать SQL запрос​ данные в Microsoft​

    2. ​. Если уж так​​ передачи инфы в​​ Столкнулся с ошибкой​ 'Automation error'... Возникает​ с базой через​, из которой вы​​ которые он поддерживает​​ организации запроса к​

  3. ​в нем. Происходит​ новый лист или​Открывается небольшое окошко навигации,​,​.​ функциональность таблицы указанный​ окно для ввода​ не с помощью​ Excel​

    ​ назвали поле, хотя​​ Акс это полное​ запроса на добавление​ при выполнении Open.​​ ODBC и строку​​ хотите импортировать данные​​ (не содержит Microsoft​​ базе данных аналогичны​​ обращение к базе​ на текущем листе.​ в котором следует​LEFT​После этого таблица готова​ выбор никак не​ кода лицензии XLTools.​ стандартного инструментария, а​Янек​ это и не​ извращение​ при попытке передать​ Единственное подозрение у​ выполнения запроса и​

  4. ​ с помощью запросов​ Access). Запуск запросов​​ тем, которые мы​​ данных с запросом,​
    ​ В последнем случае​ перейти в директорию​и др.​​ и можно переходить​​ повлияет, так что​ Если у вас​ воспользовавшись сторонней надстройкой.​

См. также

​: SLAVICK, Вах! Дорогой!​ лучший вариант, то​

support.office.com>

SQL запрос к Oracle из Excel через ODBC

​проще сделать форму​​ данные из формы​ меня на то,​ считывания значений разультата​ на языке базы​ языке базы данных,​ описывали в предыдущем​ после чего БД​ предоставляется также возможность​ расположения базы данных​В нижней части окна​ непосредственно к организации​ основывайте свой выбор​ имеется код, то​ Одной из лучших​
​ Еще не знаю,​

​ его имя надо​​ в аксе и​ в Excel в​ что неправильно указан​ его выполнения.​
​ данных.​ которые можно сэкономить​ способе.​ возвращает результаты его​ выбора координат размещения.​ в формате mdb​ следует указать, куда​ запроса. Перемещаемся во​ исключительно на основе​ нужно ввести его​ надстроек, выполняющих эту​ как эта хрень​ брать в прямые​ напрямую вводить инфу​ таблицы Access. Ошибка​ параметр Data Source.​Заранее благодарен!​Разверните поле​ время, необходимое для​Как видим, в Экселе​ обработки назад на​ По умолчанию данные​ или accdb и​ именно будет выводиться​ вкладку​ предпочтений визуального отображения.​ в соответствующее поле​ задачу, является комплекс​ работает, но ведь​ скобки​Kontugenyi​ - ошибка синтаксиса​ Каким его задавать?​meja​

​Инструкцию SQL​​ создания запросов с​ SQL запрос можно​ лист Excel, в​ размещаются на текущем​ выбрать нужный файл​ результат обработки. Это​«XLTools»​Вслед за этим запускается​ и нажать на​ инструментов XLTools, который​

​ она работает!!! В​​[Time]​: Спасибо откликнувшимся.. столько​ в инструкции INSERT​ В OrantNETWORKADMINTnsnames.ora записано​

​: Один из вариант​​и вставьте или​ помощью интерфейса Power​ организовать, как встроенными​ ранее перенесенную нами​ листе. Левый верхний​ БД. Навигация между​ может быть новый​.​ небольшое окошко. В​ кнопку​ кроме указанной возможности,​ свойствах подключения в​Аппаздал​ ошибок сделал -​ INTO. Уже перелистал​ имя, которое я​ - подключиться, используя​ введите запрос на​

​ Query. Эта функция​​ инструментами программы, так​ таблицу.​ угол импортируемого объекта​ логическими дисками при​ лист книги (по​После перехода на ленте​ нем указываются координаты​«OK»​ предоставляет массу других​ определении в тексте​

​Янек​​ даже не ожидал.​ форум и никак​
​ пытался использовать в​ ADO. Ниже представлены​ языке базы данных,​
​ особенно полезна для​ и при помощи​Кроме того, посредством инструментов​ размещается в ячейке​ этом производится в​ умолчанию) или определенный​

CyberForum.ru>

Sql запрос из Excel в Access

​ в блоке инструментов​​ таблицы. Как правило,​. Если вы желаете​ функций. Правда, нужно​ команды ввел SELECT​: Добрый день, друзья.​ Список ошибок, может​

​ не могу понять​​ качестве Data Source.​ узловые моменты кода.​
​ а затем нажмите​ работы с сложных​ сторонних надстроек. Каждый​
​ Excel существует возможность​A1​

​ специальном поле​​ диапазон на текущем​​«SQL запросы»​​ программа сама «подхватывает»​ использовать бесплатную версию​

​ заметить, что бесплатный​​ 'нужный мне столбец'​ Может, кто знает:​ кому пригодиться:​ в чем ошибка.​ Должно быть это​

​'Объявляем вначале переменные​​кнопку ОК​
​ запросов, которые уже​

CyberForum.ru>

SQL запрос на добавление данных из VBA Excel в таблицу Access

​ пользователь может выбрать​​ соединения с сервером​.​«Диски»​ листе. В последнем​щелкаем по значку​ полный адрес массива,​ на 14 дней,​ период пользования инструментом​ FROM 'имя нужной​1. Имеем Excel​1) Дату нужно​ Раньше аналогичный код​ неправильно?​ Dim cnORA As​.​
​ существуют — и​ тот вариант, который​
​ SQL Server и​После того, как все​. Между каталогами производится​ случае нужно переставить​«Выполнить SQL»​ даже если вы​ то следует просто​ составляет всего 14​ мне таблицы' и​ 2010​ заключать в символы​ работал...​
​meja​ ADODB.Connection 'для соединения​
​Если вы подключаетесь к​
​ могут хотите или​
​ удобнее для него​
​ посыла к нему​
​ настройки импорта указаны,​
​ переход в центральной​
​ переключатель в соответствующую​
​.​
​ выделили только одну​
​ нажать на кнопку​
​ дней, а потом​
​ усё заработало!!!​
​2. Имеем сервер​
​ #​
​Запрос на добавление​

​: Может быть и​ Dim rsORA As​ серверу в первый​ не знаете, как​ и является более​ запросов. Построение запроса​ жмем на кнопку​ области окна под​ позицию и указать​

​Запускается окно выполнения SQL​​ ячейку в нем.​
​«Пробная лицензия»​
​ придется покупать лицензию.​СПАСИБО!!! А ведь​
​ с базами данных​2) Разделители в​ выглядит следующим образом​ в этом ошибка,​ ADODB.Recordset 'для получения​
​ раз, вы увидите​ перестроить с помощью​ подходящим для решения​ не отличается от​«OK»​ названием​
​ координаты этого диапазона.​ запроса. В левой​ Но на всякий​

​.​​После того, как вы​ через "Данные" -​ и именами таблиц​ дате не ".",​INSERT INTO TBLtask (NoParent,​
​ но скорее всего​ записей 'Устанавливаем соединение​ запрос на выберите​
​ интерфейса Power Query.​ конкретно поставленной задачи.​ предыдущего варианта, но​
​.​«Каталоги»​После того, как запрос​
​ его области следует​ случай не мешает​
​При выборе пробной лицензии​
​ скачали файл надстройки​ "Из других источников"​3. Необходимо создать​ а "/"​ NoResponsible, EosdoTask, Reviewer,​ в другом: нужно​ с БД Set​ режим проверки подлинности​Примечание по безопасности:​ Хотя, возможности надстройки​ прежде всего, нужно​Как видим, таблица из​. В левой области​ составлен и соответствующие​ указать лист документа​ проверить ту информацию,​ открывается ещё одно​xltools.exe​ - "С сервера​ динамическую ссылку на​3) Использовал резервированную​ Responsible, GroupSub, DateStart,​ еще дописать Set​ cnORA = New​ для подключения к​ Один цели запросов на​ XLTools, в целом,​ установить само подключение.​ базы данных перемещена​
​ окна отображаются файлы,​ настройки произведены, жмем​ и таблицу на​ которая находится в​ небольшое окошко, где​, следует приступить к​ SQL cервер" редактирование​ один (!) из​ переменную "Time" в​ DateEndPlan, Time, Deadline,​

​ rsORA = New​​ ADODB.Connection cnORA.Open 'Provider=msdaora;'​ базе данных. Выберите​​ языке базы данных​​ все-таки несколько более​ Посмотрим, как это​ на лист. Затем​ расположенные в текущем​ на кнопку​ древе данных, к​ поле​​ нужно указать своё​
​ его установке. Для​

CyberForum.ru>

Запрос из Excel к SQL серверу (Иное/Other)

​ поля "текст команды"​​ столбцов известной таблицы.​ качестве имени поля.​
​ Importance, Status, DateEndFact,​ as ADODB.Recordset, чтобы​
​ + _ 'Data​ режим проверки подлинности​ — не стороне​
​ продвинутые, чем у​ сделать.​ перемещаемся во вкладку​ каталоге, если они​
​«Выполнить»​ которой будет формироваться​«Укажите расположение данных таблицы»​ имя и фамилию​ запуска инсталлятора нужно​ было доступно, но​4. Что делаю:​4) Формат даты​ TaskShortText, TaskFullText) values​ инициализировать переменную. Я​ Source=имя базы;' +​ и продолжить.​
​ действием. Тем не​ встроенных инструментов Excel.​Запускаем программу Excel и​«Данные»​ имеют расширение mdb​в нижней части​
​ запрос.​

​. Также нужно обратить​​ (можно псевдоним) и​
​ произвести двойной щелчок​ после нажатия кнопки​ Раздел "Данные" -​
​ американский "mm.dd.yy"​ (0, 1, False,​ просто забыл это​ _ 'User Id=имя​Примечание:​
​ менее Power Query​ Главный же недостаток​
​ переходим во вкладку​
​и щелкаем по​ или accdb. Именно​ окна. После этого​В правой области окна,​ внимание, чтобы около​ электронную почту. После​ левой кнопки мыши​ "Ок" показывало средний​ "Из других источников"​
​Проблема решена.​ 16, 17, 'ПФА​
​ указать, сорри :-)​ пользователя;' + _​
​ Если не имеет доступа​ не гарантирует, что​ XLTools заключается в​

​«Данные»​​ кнопке​ в этой области​ введенная операция будет​ которая занимает его​ пункта​ этого жмите на​ по установочному файлу.​ палец...​ - "С сервера​По поводу убогости​ и прогноз', 42744,​Sinister​

​ 'Password=пароль;' 'Получаем данные​ к источнику данных​ запрос не влияет​ том, что срок​. После этого щелкаем​«Подключения»​ нужно выбрать наименование​ произведена.​ большую часть, располагается​«Таблица с заголовками»​

excelworld.ru>

​ кнопку​

SQL VBA Excel

Работа с внешними источниками данных Материалы по работе с внешними источниками данных на примере Excel и SQL. Рассмотрим способы передачи данных между Excel и внешней базой данной на SQL сервере с помощью ADO.
Задача первая. Подключаемся к внешней базе данных.
Для начала надо подключиться к внешней базе данных. Подключение возможно если на компьютере установлен драйвер. Список установленных драйверов для подключения к базам данных на компьютере под управлением Windows:
Панель управления\Все элементы панели управления\Администрирование\Источники данных (ODBC)
Проверить подключение к базе данных можно простым способом. Создаем пустой файл (например, "текстовый документ.txt"), затем изменяем имя и расширение на .udl (например, "connect.udl"). Двойной клик мышкой по новому файлу, далее приступаете к настройке и проверке подключения к базе данных. После того, как удалось настроить корректное подключение к базе данных, сохраняем файл "connect.udl". Открываем файл "connect.udl" обычным текстовым редактором (например, блокнотом), и видим в строке подключения все необходимые параметры. Про подключение к внешним базам данных можно посмотреть на ресурсе ConnectionStrings . Теперь возвращаемся к нашему VBA для Excel. В редакторе VBA подключаем последнюю версию библиотеки:
 Microsoft ActiveX Data Objects Library
Пример кода:
Sub TestConnection()
 Dim cn As ADODB.Connection
 Set cn = New ADODB.Connection
 cn.ConnectionString = "" 'Параметры строки подключения
 cn.Open 'Открываем подключение
 cn.Close 'Закрываем подключение
 Set cn = Nothing 'Стираем объект из памяти
 End Sub
Задача вторая. Загружаем данные из внешней базы данных на SQL сервере в Excel.
После того, как мы установили подключение к внешней базе данных можно приступать к чтению данных и выводу в Excel. Здесь потребуется знание языка запросов SQL. В результате выполнения SQL запроса к нам возвращается некая таблица с данными в объект RecordSet. Далее из объекта RecordSet можно выгружать данные непосредственно на лист или в сводную таблицу. Пример кода простой процедуры:
Sub LoadData()
 
 Dim cn As ADODB.Connection
 Dim rst As ADODB.Recordset
 
 Set cn = New ADODB.Connection
 Set rst = New ADODB.Recordset
 
 cn.ConnectionString = "" 'Параметры строки подключения
 cn.Open
 
 rst.Open "SELECT TOP 10 * FROM <таблица>", cn 'SQL-запрос, подключение
 
 ActiveSheet.Range("A1").CopyFromRecordset rst 'Извлекаем данные на лист
 
 rst.Close
 cn.Close
 
 Set rst = Nothing
 Set cn = Nothing
 
 End Sub
Для удобства работы. Предлагаю создать собственный класс "tSQL" для работы с базой данных.  У класса будет одно свойство:
Public ConnectionSring As String
Для чтения данных напишем метод SelectFrom с параметрами TableName и ws. TableName - это имя таблицы, откуда будем считывать данные и ws - лист Excel, куда будем записывать данные.
Public Sub SelectFrom(TableName As String, ws As Worksheet)
 
 Dim cn As ADODB.Connection
 Dim rst As ADODB.Recordset
 Dim SQLstring As String
 Dim i As Long
 
 Set cn = New ADODB.Connection
 Set rst = New ADODB.Recordset
 SQLstring = "SELECT * FROM " & TableName
 ws.Cells.Clear
 
 cn.ConnectionString = ConnectionSring
 cn.Open
 
 rst.Open SQLstring, cn
 
 For i = 1 To rst.Fields.Count
 ws.Cells(1, i) = rst.Fields(i - 1).Name
 Next i
 ws.Range("A2").CopyFromRecordset rst
 
 rst.Close
 cn.Close
 
 Set rst = Nothing
 Set cn = Nothing
 SQLstring = Empty
 i = Empty
 
 End Sub
Пример использования класса tSQL в процедуре
Sub mySQL()
 Dim ts As tSQL
 Set ts = New tSQL
 
 ts.ConnectionSring = '<Строка подключения>
 ts.SelectFrom "Название таблицы", ActiveSheet
 
 Set ts = Nothing
 End Sub
Задача третья. Загружаем данные из Excel во внешнюю базу данных.
Для записи данных напишем метод InsertInto с параметрами TableName. rHead и rData. TableName - это имя таблицы, куда будем добавлять данные;  rHead - диапазон ячеек, с указанием полей; rData - диапазон ячеек с данными, которые будем добавлять.
Public Sub InsertInto(TableName As String, rHead As Range, rData As Range)
 
 Dim cn As ADODB.Connection
 Dim SQLstring As String
 Dim SQLstringH As String
 Dim SQLstringV As String
 Dim i As Long
 Dim j As Long
 
 Dim arrHead()
 Dim arrData()
 
 arrHead = rHead.Value
 arrData = rData.Value
 Set cn = New ADODB.Connection
 cn.ConnectionString = ConnectionSring
 cn.Open
 
 SQLstringH = "INSERT INTO " & TableName & "("
 For j = LBound(arrHead, 2) To UBound(arrHead, 2)
 SQLstringH = SQLstringH & " " & arrHead(1, j)
 If j < UBound(arrHead, 2) Then
 SQLstringH = SQLstringH & ","
 Else
 SQLstringH = SQLstringH & ")"
 End If
 Next j
 SQLstringH = SQLstringH & " VALUES("
 
 For i = LBound(arrData, 1) To UBound(arrData, 1)
 For j = LBound(arrData, 2) To UBound(arrData, 2)
 SQLstringV = SQLstringV & " " & arrData(i, j)
 If j < UBound(arrHead, 2) Then
 SQLstringV = SQLstringV & ","
 Else
 SQLstringV = SQLstringV & ") "
 End If
 Next j
 SQLstring = SQLstringH & SQLstringV
 SQLstringV = Empty
 cn.Execute SQLstring
 Next i
 cn.Close
 
 Set cn = Nothing
 SQLstring = Empty
 i = Empty
 j = Empty
 SQLstring = Empty
 SQLstringH = Empty
 SQLstringV = Empty
 Erase arrHead
 Erase arrData
 
 End Sub
Пример использования класса tSQL в процедуре
Sub mySQL()
 Dim ts As tSQL
 Set ts = New tSQL
 
 ts.ConnectionSring = '<Строка подключения>
 ts.InsertInto "Название таблицы", Range("B1:D1"), Range("B8:D300")
 
 Set ts = Nothing
 End Sub
 
Задача четвертая. Управляем внешней базой данных из Excel
Рекомендую использовать запросы в основном для чтения данных из внешней БД. Можно записывать данные в таблицы внешней БД. Но крайне не желательно использовать Excel для управления внешней базой данных, лучше использовать стандартные средства разработки.
Полезные ссылки:
Data from Excel to SQL   http://www.excel-sql-server.com/excel-sql-server-import-export-using-vba.htm

Excel против SQL: концептуальное сравнение

Дата публикации Aug 2, 2019


Введение

Я был вовлечен в сферу анализа данных около 3 лет. Я работаю в этой области более 2 лет в качестве аналитика в области здравоохранения, и недавно я получила степень MBA, специализируясь на науке о данных.

Во время обучения в магистратуре меня особенно интересовали методы прогнозного моделирования с использованием Python (и я до сих пор). Тем не менее, с точки зрения организации / анализа / отчетности, мне легче всего пользоваться Excel. Тратить 60–80% дня на изучение электронной таблицы Excel - это не чуждо мне. Вкладки, ленты, группировки и инструменты, вложенные в графический интерфейс Excel, являются инструментами для моего оркестра. Они издают звуки, но я провожу и переношу мелодию и гармонию в отчеты, результаты и анализы. В ходе консалтинговых проектов, составления личных бюджетов и других проблем Excel всегда был моим любимым инструментом.

Я знал о SQL и его основных понятиях уже давно. Однако лишь сравнительно недавно я решил пристегнуться и выучить его по профессиональным причинам. С точки зрения пользователя Excel, SQL имеет свои взлеты и падения. В этой статье я надеюсь передать природу и использование SQL, сравнивая его с Excel.


Excel это программа. SQL это язык.Это очень важная часть информации, которую нужно переварить. Excel можно использовать только после нажатия на зеленый значок и запуска программы. С другой стороны, SQL можно использовать для взаимодействия и взаимодействия с программами баз данных. Несколько самых популярных:

  • оракул
  • MySQL
  • Microsoft SQL Server

То, как я выучил SQL, это через GoogleБольшой запрос, Это интересный способ изучения / использования SQL путем анализа бесплатных баз данных в облаке Google, доступных бесплатно.


превосходить

Excel - это типичный инструмент для работы с электронными таблицами. Ваши данные сохраняются в файле на вашем компьютере, и они обычно организованы в виде вкладок, столбцов и строк.Файл Excel является локальным для вашего компьютера, Вы напрямую взаимодействуете с ним. Нет посредника. Нет администратора. Конечно, есть возможность использовать API для доставки данных из другого места; Тем не менее, данные в конечном итоге ваши делать с тем, что вы хотите.Это усложняет отслеживание изменений, если несколько человек работают с книгами Excel.... Это действительно возможноотслеживать изменения, но это не очень удобно.

SQL

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

Пример запроса, который фильтрует таблицу «austin_bikeshare» в Big Query на основе «bikeid», а затем упорядочивает выборку по «duration_minutes».

SELECT 
duration_minutes
FROM
`bigquery-public-data.austin_bikeshare.bikeshare_trips`
Where
bikeid = "446"
ORDER BY
duration_minutes desc

Когда вы узнаете, как работает синтаксис, манипулирование данными может быть намного быстрее с использованием SQL, чем в Excel. Другим важным аспектом является то, что синтаксис похож на английский, что делает его, пожалуй, самым простым компьютерным языком для изучения.


превосходить

  • Меньшие наборы данных: менее 1 миллиона строк, даже к северу от 100 000, это, вероятно, замедлит работу вашего компьютера.
  • Ввод данных вручную
  • Более гибкая структура: любая ячейка может быть любого типа данных, независимо от того, в каком столбце она находится.
  • Вывод графиков и визуализаций
  • Встроенная проверка орфографии и другие полезные функции
  • Работать самостоятельно над проектом

SQL

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

Источник

Когда я впервые узнал о предложениях JOIN в SQL, моей первоначальной реакцией было пометить его как незначительный, потому что я уже знал, как использовать Vlookups в Excel. После этого я некоторое время сохранял такое отношение, но, продолжая изучать уроки, реальность ситуации начала проявляться. Когда я узнал, насколько просты и полезны предложения JOIN, я вспомнил, сколько раз Vlookups выполнял на протяжении большого количества строк. Я вспомнил, как они увеличивают размер файла в геометрической прогрессии, если вы не вставляете значения после выполнения вычисления Я также вспомнил, как ограничивать его, принося только 1 значение за раз ... Подобные уроки были получены, когда я сравнивал SQL с Excel на протяжении всего обучения.

В заключение, оба инструмента имеют свое место, когда дело доходит до анализа данных. Оба служат своим уникальным целям, и знание обоих полезно для всех, кто регулярно использует данные. Из моего опыта иисследованиеоднако по этой теме SQL является более востребованным и полезным навыком в качестве аналитика данных. Excel отлично подходит для владельцев малого бизнеса, консультантов и студентов. SQL лучше для аналитиков и исследователей данных.


Некоторые полезные ресурсы, которые я использовал в своем изучении SQL:

SQL для науки о данных с Google Big Query

5 причин, по которым SQL необходим навыкам аналитиков данных

Команды SQL для часто используемых операций Excel


Пожалуйста, подпишитесь, если вы нашли это полезным. Если вам нравится мой контент, ниже приведены некоторые проекты, над которыми я работал:

Uber Отзывы Анализ текста

Простая линейная и полиномиальная регрессия

Случайный лес лучше, чем логистическая регрессия? (сравнение)

Индекс Джини против информационной энтропии

Прогнозирование рака с помощью логистической регрессии в Python

Пример двумерной логистической регрессии (python)

Расчет R-квадрата с нуля (с использованием Python)

Оригинальная статья

Автоматизация отчетности при помощи SQL и Power BI – This is Data

В своей прошлой статье я рассказывал про программные возможности языка SQL и обещал поделиться кейсом по созданию автоматизированного отчета на основе стека технологий MS SQL Server и Power BI. 

Почему именно эти технологии?

За время работы аналитиком, я перепробовал различные варианты сбора отчетности. Начиная с ручной выгрузки данных из кабинетов рекламных систем, с последующим сведением в Excel, и заканчивая созданием специальных отчетов в Google Analytics или дашбордов в Data Studio.

Но ни один из вариантов не был идеальным и каждый имел свои недостатки. Все изменилось, когда я открыл для себя Power BI.

Microsoft Power BI — это один из самых технологичных на данный момент инструментов по визуализации данных, обладающий большим набором коннекторов к различным системам.

Но и Power BI сам по себе не идеален и без грамотного использования будет работать медленно и неэффективно. Приведу два примера:

  1. Если вы попытаетесь собрать модель данных из различных источников, с большим количеством связей и рассчитываемых показателей на стороне Power BI, то отчет будет жутко тормозить, а ведь именно таким принципам работы учит большое количество курсов по данному инструменту.
  2. Еще пример, если вы пытаетесь загрузить в модель данные из Google Analytics при помощи встроенного коннектора, то столкнетесь как минимум с двумя проблемами — ограничениями API GA и долгой выгрузкой данных.

Вышеописанные проблемы привели меня к мысли о загрузке всех данных сначала в базу, моделировании отчета при помощи SQL и только потом их визуализации в Power BI.

Переходим к делу

Для примера возьмем задачу по автоматизации отчета по эффективности контекстной рекламы.

К данному отчету заказчиком предъявляются следующие требования:

  • Отчет должен содержать исторические данные по вчерашний день;
  • Отчет должен обновляться ежедневно в автоматизированном режиме;
  • Помимо Power BI, должна быть возможность подключения к отчету через Excel.

Также отчет должен содержать следующие параметры и показатели:

  • Дата;
  • Источник/Канал
  • Кампания
  • Сумма расходов;
  • Кол-во показов;
  • Кол-во кликов;
  • Кол-во сеансов;
  • Кол-во заказов;
  • Доход;
  • Рассчитываемые показатели — CPC, CR и ROMI.

Естественно, все данные должны быть предварительно загружены в хранилище, но это тема отдельного поста и обычно этим занимаются data-инженеры. Мы же с вами аналитики и используем те данные, которые для нас любезно сложили в DWH (хранилище данных).

В моем случае DWH работает на базе MS SQL Server и содержит следующие таблицы:

  • sessions — данные из Google Analytics загруженные посредством коннектора к Reporting API v4;
  • costs — данные по расходам, предварительно загруженные в Google Analytics;
  • orders — данные по заказам и доходу из внутренней CRM-системы.

Для работы нам потребуется установить:

Опущу совсем уж базовые вещи, такие как регистрация аккаунтов и установка программ, с этим вы без проблем справитесь и сами.

Готовим данные

Итак, задача понятна, инструменты готовы — за дело!

Создаем таблицу

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

  • date;
  • sourceMedium;
  • campaign.

Кстати, никакой сквозной аналитики у вас никогда не получится, если вы не умеете грамотно размечать рекламу utm-метками. О том как правильно ставить метки, читайте в одном из уроков бесплатного онлайн-курса «Digital-аналитика для новичков».

Но вернемся к задаче и после некоторых манипуляций с SQL получим вот такой скрипт:

-- Создаем переменные с датами отчета
 SET DATEFIRST 1
 DECLARE @startDate date, @endDate date;
 SET @startDate = '2020-03-10'
 SET @endDate = '2020-03-10';
 
 -- Запрашиваем сеансы
 WITH [sessions] AS (
 SELECT 
 [date]
 , sourceMedium
 , campaign
 , SUM([sessions]) AS 'sessions'
 -- Желательно использовать 'WITH (NOLOCK)', чтобы не блокировать высоконагруженную базу
 FROM [GoogleAnalytics].[dbo].[sessions] WITH (NOLOCK)
 
 -- Задаем период
 WHERE [date] BETWEEN @startDate AND @endDate 
 -- Указываем источники трафика, по которым будем строить отчет
 AND sourceMedium IN ('google / cpc', 'yandex / cpc') 
 
 GROUP BY [date], [sourceMedium], [campaign]
 )
 
 -- Запрашиваем расходы
 , costs AS ( 
 SELECT 
 [date]
 , sourceMedium
 , campaign 
 , SUM(cost) AS 'cost'
 , SUM(impressions) AS 'impressions'
 , SUM(clicks) AS 'clicks'
 FROM [GoogleAnalytics].[dbo].[cost] WITH (NOLOCK)
 
 WHERE [date] BETWEEN @startDate AND @endDate 
 AND sourceMedium IN ('google / cpc', 'yandex / cpc') 
 
 GROUP BY [date], [sourceMedium], [campaign]
 )
 
 -- Объединяем сеансы с расходами
 , costs_sessions AS (
 SELECT 
 -- 'ISNULL' используем для того, чтобы не получить результат 'NULL' там где не было расходов по источнику, но был сеанс
 ISNULL(costs.[date], [sessions].[date]) AS 'date'
 , ISNULL(costs.sourceMedium, [sessions].sourceMedium) AS 'sourceMedium'
 , ISNULL(costs.campaign, [sessions].campaign) AS 'campaign'
 , ISNULL(SUM(costs.cost),0) AS 'cost'
 , ISNULL(SUM(costs.impressions),0) AS 'impressions'
 , ISNULL(SUM(costs.clicks),0) AS 'clicks'
 , ISNULL(SUM([sessions].[sessions]), 0) AS 'sessions'
 FROM costs
 
 FULL JOIN [sessions]
 ON costs.[date] = [sessions].[date] AND costs.sourceMedium = [sessions].sourceMedium AND costs.campaign = [sessions].campaign
 
 GROUP BY ISNULL(costs.[date], [sessions].[date]), ISNULL(costs.sourceMedium, [sessions].sourceMedium), ISNULL(costs.campaign, [sessions].campaign)
 )
 
 -- Запрашиваем заказы и доход
 , orders AS (
 SELECT 
 [date]
 , sourceMedium
 , campaign
 , SUM(orders) AS 'orders'
 , SUM(revenue) AS 'revenue'
 FROM [Crm].[dbo].[orders] WITH (NOLOCK)
 
 WHERE [date] BETWEEN @startDate AND @endDate 
 AND sourceMedium IN ('google / cpc', 'yandex / cpc') 
 
 GROUP BY [date], [sourceMedium], [campaign]
 )
 
 -- Объединяем данные по трафику с данными о заказах
 , join_table AS (
 SELECT
 ISNULL(costs_sessions.[date], orders.[date]) AS 'date'
 , ISNULL(costs_sessions.sourceMedium, orders.sourceMedium) AS 'sourceMedium'
 , ISNULL(costs_sessions.campaign, orders.campaign) AS 'campaign'
 , ISNULL(SUM(costs_sessions.cost), 0) AS 'cost'
 , ISNULL(SUM(costs_sessions.impressions), 0) AS 'impressions'
 , ISNULL(SUM(costs_sessions.clicks), 0) AS 'clicks'
 , ISNULL(SUM(costs_sessions.[sessions]), 0) AS 'sessions'
 ,ISNULL(SUM(orders.orders), 0) AS 'orders'
 , ISNULL(SUM(orders.revenue), 0) AS 'revenue'
 FROM costs_sessions
 
 FULL JOIN orders
 ON costs_sessions.[date] = orders.[date] AND costs_sessions.sourceMedium = orders.sourceMedium AND costs_sessions.campaign = orders.campaign
 
 GROUP BY ISNULL(costs_sessions.[date], orders.[date]), ISNULL(costs_sessions.sourceMedium, orders.sourceMedium), ISNULL(costs_sessions.campaign, orders.campaign)
 )
 
 -- Выводим итоговый результат
 SELECT *
 FROM join_table

Запустим его и порадуемся получившемуся результату:

Создаем таблицу

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

Гораздо более правильным решением будет создать промежуточную таблицу в базе данных и докладывать туда ежедневно данные за прошедшие сутки. Что мы и сделаем:

Таблица будет иметь следующую структуру (подробнее о типах данных):

При сохранении таблицы укажем название:

И теперь, чтобы получить все данные из нее, достаточно выполнить простой SELECT:

SELECT * FROM paid_traffic_report

Создаем хранимую процедуру

Отлично! Настало время автоматизации 😉

А поможет нам в этом функционал хранимых процедур (подробнее рассказывал о них тут).

Засучим рукава и обернем наш скрипт в код процедуры:

CREATE PROCEDURE fill_paid_traffic_report
 (
 @startDate date,
 @endDate date
 )
 AS
 BEGIN
 
 -- Уберем из кода переменные, они нам понадобятся позже при настройке расписания
 -- Запрашиваем сеансы
 WITH [sessions] AS (
 SELECT 
 [date]
 , sourceMedium
 , campaign
 , SUM([sessions]) AS 'sessions'
 -- Желательно использовать 'WITH (NOLOCK)', чтобы не блокировать высоконагруженную базу
 FROM [GoogleAnalytics].[dbo].[sessions] WITH (NOLOCK)
 -- Задаем период
 WHERE [date] BETWEEN @startDate AND @endDate 
 -- Указываем источники трафика, по которым будем строить отчет
 AND sourceMedium IN ('google / cpc', 'yandex / cpc') 
 GROUP BY [date], [sourceMedium], [campaign]
 )
 -- Запрашиваем расходы
 , costs AS ( 
 SELECT 
 [date]
 , sourceMedium
 , campaign 
 , SUM(cost) AS 'cost'
 , SUM(impressions) AS 'impressions'
 , SUM(clicks) AS 'clicks'
 FROM [GoogleAnalytics].[dbo].[cost] WITH (NOLOCK)
 WHERE [date] BETWEEN @startDate AND @endDate 
 AND sourceMedium IN ('google / cpc', 'yandex / cpc') 
 GROUP BY [date], [sourceMedium], [campaign]
 )
 -- Объединяем сеансы с расходами
 , costs_sessions AS (
 SELECT 
 -- 'ISNULL' используем для того, чтобы не получить результат 'NULL' там где не было расходов по источнику, но был сеанс
 ISNULL(costs.[date], [sessions].[date]) AS 'date'
 , ISNULL(costs.sourceMedium, [sessions].sourceMedium) AS 'sourceMedium'
 , ISNULL(costs.campaign, [sessions].campaign) AS 'campaign'
 , ISNULL(SUM(costs.cost),0) AS 'cost'
 , ISNULL(SUM(costs.impressions),0) AS 'impressions'
 , ISNULL(SUM(costs.clicks),0) AS 'clicks'
 , ISNULL(SUM([sessions].[sessions]), 0) AS 'sessions'
 FROM costs
 FULL JOIN [sessions]
 ON costs.[date] = [sessions].[date] AND costs.sourceMedium = [sessions].sourceMedium AND costs.campaign = [sessions].campaign
 GROUP BY ISNULL(costs.[date], [sessions].[date]), ISNULL(costs.sourceMedium, [sessions].sourceMedium), ISNULL(costs.campaign, [sessions].campaign)
 )
 -- Запрашиваем заказы и доход
 , orders AS (
 SELECT 
 [date]
 , sourceMedium
 , campaign
 , SUM(orders) AS 'orders'
 , SUM(revenue) AS 'revenue'
 FROM [Crm].[dbo].[orders] WITH (NOLOCK)
 WHERE [date] BETWEEN @startDate AND @endDate 
 AND sourceMedium IN ('google / cpc', 'yandex / cpc') 
 GROUP BY [date], [sourceMedium], [campaign]
 )
 -- Объединяем данные по трафику с данными о заказах
 , join_table AS (
 SELECT
 ISNULL(costs_sessions.[date], orders.[date]) AS 'date'
 , ISNULL(costs_sessions.sourceMedium, orders.sourceMedium) AS 'sourceMedium'
 , ISNULL(costs_sessions.campaign, orders.campaign) AS 'campaign'
 , ISNULL(SUM(costs_sessions.cost), 0) AS 'cost'
 , ISNULL(SUM(costs_sessions.impressions), 0) AS 'impressions'
 , ISNULL(SUM(costs_sessions.clicks), 0) AS 'clicks'
 , ISNULL(SUM(costs_sessions.[sessions]), 0) AS 'sessions'
 ,ISNULL(SUM(orders.orders), 0) AS 'orders'
 , ISNULL(SUM(orders.revenue), 0) AS 'revenue'
 FROM costs_sessions
 FULL JOIN orders
 ON costs_sessions.[date] = orders.[date] AND costs_sessions.sourceMedium = orders.sourceMedium AND costs_sessions.campaign = orders.campaign
 GROUP BY ISNULL(costs_sessions.[date], orders.[date]), ISNULL(costs_sessions.sourceMedium, orders.sourceMedium), ISNULL(costs_sessions.campaign, orders.campaign)
 )
 -- Вставляем данные в таблицу
 INSERT INTO paid_traffic_report
 SELECT *
 FROM join_table
 
 END;

Теперь протестируем и вручную вызовем процедуру:

Скорость отработки процедуры 3 секунды на одном дне — вполне приемлемо. Проверим появились ли данные в ранее созданной таблице:

Осталось настроить ежедневное обновление.

Настраиваем расписание

Настроим вызов нашей процедуры каждое утро по расписанию, благо в Management Studio для этого предусмотрена специальная служба под названием «Агент SQL Server».

Зайдем в агент и добавим новое задание:

Укажем название и придумаем описание:

Далее создадим новый шаг, в котором будем вызывать процедуру с данными за прошедшие сутки (обратите внимание, объявление переменных с датами из нашего скрипта мы перенесли в расписание и немного изменили):

Настраиваем время запуска, периодичность и сохраняем:

Теперь данные автоматически будут поступать в отчет ежедневно в 9 утра.

Визуализируем данные

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

Останавливаться на том как установить Power BI и как им пользоваться не буду, так как этой теме посвящен целый урок нашего курса. 

Создаем отчет

Заходим в desktop-версию Power BI и открываем коннектор к SQL Server:

Вводим данные для подключения к серверу, название базы данных и наш короткий SQL-запрос к ранее созданной табличке:

И это все! Никаких сложных моделей в Power BI строить не нужно, так как мы уже это сделали на стороне SQL-запроса.

Наиболее правильным считаю подход, когда инструмент визуализации используется именно для этой самой визуализации и еще для создания рассчитываемых показателей (например, CPC, CPO, ROMI). Используйте эти рекомендации и ваши отчеты будут летать.

После того как будет готов дизайн отчета, его нужно загрузить в облако Microsoft:

Настраиваем расписание

Отчет опубликован! Остался финальный шаг, для этого переходим в веб-версию Power BI и настраиваем расписание обновления.

Но перед этим не забываем поставить на компьютер, с которого будет происходить обновление, локальный шлюз Power BI (а лучше всего завести под это дело отдельную виртуальную машину):

Важно так подгадать расписание, чтобы оно запускалось в тот момент, когда на стороне SQL Server уже отработает наша процедура и положит в табличку свежие данные. Плюс нужно заложить небольшой запас времени, на возможные проблемы с сервером при его перегрузке:

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

А как же Excel?

Иногда заказчики могут попросить загрузить данные в Excel для более детального анализа.

Для этого зайдем в Excel на вкладку «Данные» и создадим новое подключение к серверу баз данных:

После чего останется только указать SQL-запрос и сохранить:

С этого момента данные из нашей таблицы на сервере станут доступны в Excel.

Итог

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

Буду рад ответить на ваши вопросы.

Роман Романчук
Digital-аналитик и иногда спортсмен. Руководитель отдела аналитики Sravni.ru

Экспорт данных SQL в Excel с заголовками столбцов

Сколько раз вам приходилось писать быстрый запрос в SQL Management Studio для кого-то, а затем экспортировать данные в Excel? Экспорт данных из SQL Server - это довольно длительный процесс, состоящий из нескольких этапов, но если вы сделаете это несколько раз, это неплохо.

Сохраняя результаты SQL-запросов в формате Excel или CSV, я понял, что лучше всего использовать мастер импорта и экспорта SQL, а не пытаться щелкнуть правой кнопкой мыши результаты и сохранить их.

Вы всегда можете щелкнуть правой кнопкой мыши и выбрать « Сохранить результаты как», однако полученный CSV-файл не будет содержать заголовков столбцов! Это королевская боль, если у вас есть 50 столбцов.

Экспорт данных SQL в Excel

Для правильного экспорта данных SQL щелкните правой кнопкой мыши базу данных (не таблицу) и выберите « Задачи», « Экспорт данных» .

Далее вам нужно выбрать источник данных . Если вы щелкнули правой кнопкой мыши на имени базы данных, то все должно появиться автоматически.

Теперь вам нужно выбрать пункт назначения . Идите вперед и выберите Microsoft Excel из выпадающего списка. После этого вам нужно будет нажать кнопку « Обзор» и выбрать местоположение для выходного файла Excel. Также не забудьте установить флажок «У первой строки есть имена столбцов ».

Затем вы можете либо экспортировать всю таблицу / представление в Excel, либо написать собственный запрос. В моем случае я напишу конкретный запрос для данных, которые я хочу экспортировать.

Введите свой запрос и затем нажмите Parse, чтобы убедиться, что все правильно.

Наконец, нажмите Далее, а затем нажмите Готово . Ваши данные SQL будут выведены в файл Excel, и он будет также включать все заголовки столбцов! Наслаждайтесь!

Создание, загрузка и редактирование запроса в Excel (Power Query)

Вы знаете, в какой среде вы находитесь Power Query хорошо интегрирован с пользовательским интерфейсом Excel, особенно для импорта данных, работы с соединениями и редактирования сводных таблиц, таблиц Excel и именованных диапазонов. Чтобы избежать путаницы, вы в любой момент должны знать, в какой среде вы сейчас находитесь в Excel или Power Query.

Известный лист Excel, лента и сетка

Лента Power Query Editor и предварительный просмотр данных

Например, управление данными на листе Excel существенно отличается от Power Query.Кроме того, связанные данные, находящиеся на листе Excel, могут выполняться или не выполняться в фоновом режиме с помощью Power Query для формирования данных. Это происходит только тогда, когда данные загружаются на лист или модель данных из Power Query.

Переименование вкладок рабочего листа Полезно переименовывать вкладки рабочего листа понятным образом, особенно если их много. Особенно важно объяснить разницу между таблицей данных и рабочим листом, загруженным из редактора Power Query.Даже если у вас есть только два рабочих листа, один с таблицей Excel с именем Sheet1,, а другой был создан путем импорта этой таблицы Excel с именем Table1,, ее можно легко спутать. Всегда полезно изменить имена вкладок листов по умолчанию на что-то более осмысленное. Например, переименуйте Sheet1 в Data Table, a Table1 в Query Table . Теперь не возникает вопроса, на какой карточке данные, а на какой запрос.

.

Запуск SQL-запросов к файлам Excel — Power Automate

  • Статья
  • Время считывания: 3 мин
  • 1 соавтор

Была ли эта страница полезной?

да Нет

Хотите что-нибудь добавить к этому мнению?

Отзыв будет отправлен в Microsoft: когда вы нажмете «Отправить», отзыв будет использован для улучшения продуктов и услуг Microsoft.Политика конфиденциальности.

Представлять на рассмотрение

В этой статье

Хотя действия Excel могут обрабатывать большинство сценариев автоматизации Excel, запросы SQL могут более эффективно извлекать и обрабатывать большие объемы данных Excel.

Предположим, потоку необходимо изменить только те регистры Excel, которые содержат указанное значение.Для достижения этой функциональности без SQL-запросов, циклов, условий и многих действий Excel необходимы.

И наоборот, вы можете реализовать эту функцию с запросами SQL, используя только два действия: действие Открыть соединение SQL и действие Выполнить SQL .

Открытие соединения SQL с файлом Excel

Перед выполнением SQL-запроса необходимо открыть соединение с файлом Excel, к которому вы хотите получить доступ.

Для подключения создайте новую переменную с именем % Excel_File_Path% и инициализируйте ее путем к файлу Excel.При желании вы можете пропустить этот шаг и позже использовать путь к файлу по умолчанию.

Теперь реализуем действие Открываем SQL соединение и в его свойствах вписываем следующую строку соединения.

Поставщик = Microsoft.ACE.OLEDB.12.0;Источник данных =%Excel_File_Path%;Расширенные свойства = "Excel 12.0 Xml;HDR = YES";

Открытие соединения SQL с файлом Excel, защищенным паролем

В сценариях, где мы запускаем SQL-запросы к защищенным паролем файлам Excel, требуется другой подход.Действие Открыть соединение SQL не удается подключиться к файлам Excel, защищенным паролем, поэтому необходимо снять защиту.

Для этого запустите файл Excel с действием Запустить Excel . Файл защищен паролем, поэтому введите соответствующий пароль в поле Пароль .

Затем мы реализуем соответствующие действия автоматизации пользовательского интерфейса и переходим к Файл > Информация > Защита рабочей книги > Зашифровать паролем .Дополнительные сведения об автоматизации пользовательского интерфейса и о том, как использовать соответствующие действия, см. в разделе Автоматизация рабочих процессов.

После выбора опции Зашифровать с паролем введите пустую строку в диалоговое окно с действием Всплывающее текстовое поле в окнах . Чтобы заполнить пустую строку, используйте следующее выражение: % ""% .

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

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

После сохранения файла следуйте инструкциям в разделе Открытие подключения SQL к файлам Excel, чтобы открыть подключение к нему.

После завершения работы с файлом Excel используйте действие Удалить файл , чтобы удалить незащищенную копию файла Excel.

Чтение содержимого электронной таблицы Excel

Хотя действие Чтение с листа Excel может прочитать содержимое листа Excel, повторение загруженных данных может занять много времени.

Более эффективный способ получить определенные значения из электронных таблиц — рассматривать файлы Excel как базы данных и выполнять к ним SQL-запросы. Этот подход быстрее и увеличивает эффективность потока.

Чтобы получить все содержимое электронной таблицы, вы можете использовать следующий запрос SQL в действии Выполнить команды SQL .

  ВЫБЕРИТЕ * ИЗ [ЛИСТ $] 90 130 

Примечание

Чтобы применить этот SQL-запрос к своим потокам, замените метку SHEET на имя электронной таблицы, к которой вы хотите получить доступ.

Чтобы получить строки, содержащие определенное значение в определенном столбце, используйте следующий запрос SQL:

  ВЫБЕРИТЕ * ИЗ [ЛИСТ $], ГДЕ [ИМЯ КОЛОННЫ] = 'ЗНАЧЕНИЕ' 90 130 

Примечание

Чтобы применить этот SQL-запрос к потокам, замените:

  • ЛИСТ имя электронной таблицы, к которой вы хотите получить доступ
  • ИМЯ СТОЛБА Значение столбца, которое вы хотите найти. Столбцы в первой строке рабочего листа Excel идентифицируются как имена столбцов таблицы.
  • ЗНАЧЕНИЕ Значение, которое вы хотите найти

Удалить данные из строки в Excel

Хотя Excel не поддерживает SQL-запрос DELETE , вы можете использовать запрос UPDATE , чтобы сделать все ячейки определенной строки пустыми.

Точнее, вы можете использовать следующий SQL-запрос:

  UPDATE [SHEET $] SET [COLUMN1] = NULL, [COLUMN2] = NULL, ГДЕ [COLUMN1] = 'VALUE' 90 130 

При разработке потока нужно заменить, заменить метку ЛИСТ на имя таблицы, к которой вы хотите получить доступ.

Поля COLUMN1 и COLUMN2 представляют имена всех существующих столбцов. В этом примере есть два столбца, но в реальном сценарии количество столбцов может быть другим. Столбцы в первой строке рабочего листа Excel идентифицируются как имена столбцов таблицы.

Часть запроса [COLUMN1] = 'VALUE' определяет обновляемую строку. В своем потоке используйте имя столбца и значение, исходя из того, какая комбинация однозначно описывает строки.

Восстановить данные Excel, кроме указанной строки

В некоторых сценариях может потребоваться загрузить все содержимое электронной таблицы Excel, кроме определенной строки.

Удобный способ добиться этого — установить значение нежелательной строки в null, а затем получить все значения, кроме null.

Чтобы изменить значения определенной строки в электронной таблице, вы можете использовать SQL-запрос UPDATE , как показано в разделе Удаление данных из строки Excel:

  UPDATE [SHEET $] SET [COLUMN1] = NULL, [COLUMN2] = NULL, ГДЕ [COLUMN1] = 'VALUE' 90 130 

Затем выполните следующий запрос SQL, чтобы получить все ненулевые строки электронной таблицы:

  SELECT * FROM [SHEET $], ГДЕ [COLUMN1] НЕ NULL ИЛИ [COLUMN2] НЕ NULL 90 130 

Примечание

Поля COLUMN1 и COLUMN2 представляют имена всех существующих столбцов.В этом примере есть два столбца, но в реальной таблице количество столбцов может быть другим. Все столбцы в первой строке рабочего листа Excel идентифицируются как имена столбцов таблицы.

.

как передать параметры в запрос в SQL (Excel)

Этот пост достаточно старый, поэтому этот ответ, вероятно, будет мало полезен для OP, но я потратил целую вечность, пытаясь ответить на один и тот же вопрос, поэтому я подумал, что обновлю его с моими выводами.

Этот ответ предполагает, что у вас уже есть работающий SQL-запрос в документе Excel. В Интернете существует множество учебных пособий, показывающих, как это сделать, и многие из них объясняют, как добавить параметризованный запрос к одному, за исключением того, что ни один из них не работает для существующего запроса , OLE DB .

Итак, если вы, как и я, получили более старый документ Excel с рабочим запросом, но пользователь хочет иметь возможность фильтровать результаты на основе одного из полей базы данных, и если вы, как и я, не являетесь ни Excel, ни SQL Гуру, может вам поможет.

В большинстве онлайн-ответов на этот вопрос, по-видимому, говорится, что вы должны добавить «?» В запрос, чтобы Excel запрашивал у вас настраиваемый параметр, или поместите подсказку или ссылку на ячейку в [круглые скобки] там, где должен быть параметр.Это может работать для запроса ODBC, но, похоже, не работает для OLE DB, возвращая «нет значения для одного или нескольких обязательных параметров» в первом экземпляре и «Недопустимое имя столбца« xxxx »или« Неизвестный объект« xxxx » "в последних двух. Точно так же использование мифических кнопок «параметры…» или «Редактировать запрос…» также невозможно, так как в этом случае они постоянно отображаются серым цветом. (Для справки: я использую Excel 2010, но с книгой Excel 97-2003 (*.xls))

Однако мы можем добавить ячейку параметра и кнопку с помощью простой процедуры для программного обновления текста нашего запроса.

Сначала добавьте строку над таблицей внешних данных (или где угодно), где вы можете поместить подсказку параметра рядом с пустой ячейкой и кнопкой (Разработчик->Вставка->Кнопка (Управление формой) - вам может потребоваться включить вкладку Разработчик , но вы можете узнать, как это сделать в другом месте), например:

Затем выберите ячейку в области внешних данных (синяя), затем откройте данные -> обновить все (раскрывающийся список) -> свойства подключения... взглянуть на ваш запрос. Код в следующем разделе предполагает, что у вас уже есть параметр в вашем запросе (свойства соединения-> определение-> текст команды) в форме «ГДЕ (DB_TABLE_NAME.Field_Name = 'параметр запроса по умолчанию')» (включая круглые скобки). Очевидно, что «DB_TABLE_NAME.Field_Name» и «Параметр запроса по умолчанию» должны быть разными в коде, в зависимости от имени таблицы базы данных, имени поля (столбца), значений базы данных и значения по умолчанию для поиска при открытии документа (если вы установлено автоматическое обновление).Запишите значение «DB_TABLE_NAME.Field_name», которое вам понадобится в следующем разделе, вместе с вашим «именем соединения» в верхней части диалогового окна.

Закройте свойства соединения и нажмите Alt + F11, чтобы открыть редактор VBA. Если вы еще не на нем, щелкните правой кнопкой мыши имя листа, содержащего вашу кнопку, в окне «Проект» и выберите «Просмотр кода». Вставьте приведенный ниже код в окно кода (рекомендуется копирование, поскольку одинарные/двойные кавычки рискованны и необходимы).

  Sub RefreshQuery () Dim queryPreText как строка Dim queryPostText как строка Dim valueToFilter As String Dim paramPosition As Integer valueToFilter = "DB_TABLE_NAME.Field_Name =" С ActiveWorkbook.Connections («имя подключения»). queryPreText = .CommandText paramPosition = InStr (queryPreText, valueToFilter) + Len (valueToFilter) — 1 queryPreText = Left (queryPreText, paramPosition) queryPostText = .CommandText queryPostText = Right (queryPostText, Len (queryPostText) - paramPosition) queryPostText = Right (queryPostText, Len (queryPostText) - InStr (queryPostText, ")") + 1) .CommandText = queryPreText & "'" & Range ("Ссылка на ячейку"). Value & "'" & queryPostText Конец с ActiveWorkbook.Connections («Имя соединения»). Конец сабвуфера  

Замените "DB_TABLE_NAME.Field_Name" и "имя соединения" (в двух местах) своими значениями (должны быть включены двойные кавычки, пробелы и знаки равенства).

Замените "ссылку на ячейку" на ячейку, к которой относится ваш параметр (пустая ячейка с самого начала) - моя ячейка была второй в первой строке, поэтому поставьте "B1" (опять же, необходимы двойные кавычки).

Сохраните и выйдите из редактора VBA.

Введите свой параметр в соответствующую ячейку.

Щелкните правой кнопкой мыши кнопку, чтобы назначить подпрограмму «Обновить» в качестве макроса, а затем нажмите кнопку. Запрос должен обновляться и отображать соответствующие данные!

Сноски: Использование полного имени параметра фильтра ("DB_TABLE_NAME.Field_Name=") необходимо только в том случае, если в вашем запросе есть объединения или другие вхождения знаков равенства, в противном случае знака равенства будет достаточно, и вычисление len() будет избыточным.Если ваш параметр содержится в поле, которое также используется для соединения таблиц, вам нужно будет изменить строку "paramPosition = InStr (queryPreText, valueToFilter) + len (valueToFilter) - 1" в коде на "paramPosition = InStr (Right (.CommandText, Len (.CommandText) - Instrev (.CommandText, "WHERE")), valueToFilter) + Len (valueToFilter) - 1 + InStr (.CommandText, "where") "поэтому он ищет только valueToFilter After "где".

Этот ответ был сделан с помощью datapig "BaconBits", где я нашел базовый код для обновления запроса.

.Можно ли совместить

запросов SQL и базу данных Excel? - макросы Excel для обучения VBA | Курс SQL и Oracle

Сегодня я начну свой пост необычно не с VBA или Excel, а с языка SQL. Конечно, те, кто меня знает, знают, что мы тоже будем ловить 100% Excel ;) Но идея в том, что пока я сосредоточен на том, как писать SQL-запросы. Прочитав эту статью, каждый сможет с помощью команд SQL получить то, что делает сводная таблица в Excel (или из английской сводной таблицы ;))

О чем вы узнаете из следующей статьи:

  1. Что такое SQL и запросы SQL?
  2. SQL-запросов в Excel
  3. ВЫБЕРИТЕ запрос
  4. ОТЛИЧНЫЙ
  5. ГДЕ - Результат запроса фильтра
  6. Операторы И и ИЛИ - уточнение результатов запроса
  7. Базовые функции SQL
  8. ORDER BY — сортировка результатов запроса
  9. ГРУППА ПО

1.Что такое SQL и SQL-запросы?

Максимально просто: SQL — это язык , который используется для «общения» с базой данных :)
SQL-запросы — это предложения/команды, которые «говорят» базе данных, чтобы она что-то делала для нас.

SQL-запроса используются огромным количеством программ вокруг нас. Знание того, как составлять эти запросы и взаимодействовать с базами данных и другими приложениями, такими как Excel, является важным ИТ-навыком, востребованным и ценимым работодателями.

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

Еще до того, как вы начнете учиться, я хотел вам объяснить, что единого языка SQL не существует.Так же как нет единого английского языка :) Немного другой английский например в Австралии и другой в Шотландии, вроде одинаковый и все же есть "незначительные" отличия ;). Это похоже на файлы SQL. Существует столько же разных версий SQL, сколько и разных баз данных, с которыми вы хотите общаться. Наиболее популярными базами данных являются ORACLE, SQL Server, MySQL и PostgreSQL.

Конечно, самые простые запросы будут выглядеть практически одинаково вне зависимости от базы, но... как говорится, дьявол кроется в деталях и чем дальше в лес, тем больше деревьев и т.д.:)

2. SQL-запросы в Excel

Первая проблема, с которой сталкивается большинство людей при изучении SQL-запросов, — это база данных. Приходится что-то устанавливать, настраивать, создавать таблицы, пользователей и т.д. Это обескураживает. Поэтому я и подумал, что покажу вам, как писать SQL-запросы в Excel :)

Да, старый добрый Excel может быть базой данных :) Благодаря Excel ничего не надо будет устанавливать, настраивать, добавлять пользователей, таблицы и т.д.осталось только скачать файл "baza_danych.xlsm", который я прикрепляю по ссылке ниже и... готово :)

ссылка на файл базы данных excel на гугл диске

Итак качаем файл "baza_danych.xlsm" по ссылке выше. Затем открываем его и включаем макросы. Потому что мне пришлось добавить несколько строк кода в этот файл, чтобы заставить SQL работать на нас :)

Перечень таблиц, листов следующий.
Лист результатов - включает:

  • серое поле для ввода команд SQL (столбцы с J по P)
  • кнопка выполнения запроса
  • раздел для возврата результатов (столбцы от A до H)

Табель сотрудников - таблица с данными о сотрудниках

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

3.ВЫБЕРИТЕ

Первым оператором SQL, который будет использоваться в базе данных Excel, является SELECT. С его помощью можно выгружать данные из таблиц, в нашем случае из листов Excel.
Структура команды (в простейшем виде) выглядит так:

ВЫБЕРИТЕ ColumnName1, ColumnName2, ColumnName3 FROM TableName

ВЫБЕРИТЕ ColumnName1, ColumnName2, ColumnName3 FROM TableName

Размер символов в именах столбцов или таблиц не имеет значения.Запрос вернет нам все данные из столбцов, имена (заголовки) которых будут заданы.
Таким образом, запрос, который сотрудники будут загружать с листа, данные о фамилиях, должностях и окладах отдельных сотрудников, будет выглядеть так:

ВЫБЕРИТЕ ФИО, должность, зарплату ОТ сотрудников

ВЫБЕРИТЕ имя, должность, зарплату ОТ сотрудников

результат:


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

Результат:

Самое интересное, что порядок столбцов, в которых данные отображаются в таблице, не имеет значения. Именно содержимое нашего запроса «сообщает», как база данных Excel должна установить порядок представленных результатов.
Проверьте, какой результат вы получите, указав другой порядок столбцов, т.е. так:

ВЫБЕРИТЕ должность, ФИО, зарплату ОТ сотрудников

ВЫБЕРИТЕ должность, ФИО, оклад ОТ сотрудников

Результат:

4.ОТЛИЧНЫЙ

Вторая полезная команда SQL — DISTINCT. Это немного похоже на инструмент «Удалить дубликаты» в Excel.
После добавления в запрос предложения DISTINCT мы в результате будем видеть только уникальные строки/записи.
Посмотрите, что даст такой запрос:

ВЫБЕРИТЕ должность ИЗ сотрудников

ВЫБЕРИТЕ должность ИЗ сотрудников

результат:


А что вы получите, когда напишете запрос да?

ВЫБЕРИТЕ ОТЛИЧНУЮ должность ОТ сотрудников

ВЫБЕРИТЕ ОТЛИЧНУЮ должность ОТ сотрудников

результат:


Итак, мы уже знаем, как получить все данные из заданных столбцов таблицы.
Следующим шагом будет научиться фильтровать результаты запросов, добавлять к ним условия, сортировать их и т.д. )

5. ГДЕ - фильтрация результатов запроса

Третья команда, которая часто добавляется в SQL-запросы, — WHERE

.

Если вы используете Excel, вы, вероятно, уже знаете эту команду, но под другим именем = ЕСЛИ / = ЕСЛИ.Да-да, ГДЕ именно такой Excel=ЕСЛИ. С его помощью мы можем отфильтровать результат SQL-запроса или «скрыть» то, что нам не интересно.

Давайте начнем с запроса, который из нашей базы данных Excel будет перечислять имена, зарплаты и должности всех сотрудников, зарабатывающих менее 2000 (конечно, в евро;).

ВЫБЕРИТЕ ФИО, зарплату, должность ОТ сотрудников ГДЕ зарплата <= 2000 9000 3

ВЫБЕРИТЕ имя, зарплату, должность ИЗ сотрудников

ГДЕ зарплата <= 2000

Результат:

Теперь это другое, мы будем выбирать имена, зарплаты и должности всех людей, работающих в качестве «продавцов».Обратите внимание на апостроф вокруг слова продавец. Благодаря этим символам слово продавец будет восприниматься как текст :)

ВЫБЕРИТЕ ФИО, зарплату, должность ОТ сотрудников ГДЕ позиция = "ПРОДАВЕЦ"

ВЫБЕРИТЕ имя, зарплату, должность ОТ сотрудников

ГДЕ должность = 'ПРОДАВЕЦ'

Результат:

Помните, что здесь мы по-прежнему имеем дело с SQL-запросами базового уровня, но если тема вас больше интересует, проверьте, как работает оператор LIKE, используемый в WHERE, вместо знака =.

Если вы хотите отфильтровать результат запроса на основе текста, с LIKE вы можете использовать специальные символы (так называемые «шаблонные знаки»). И вот мы подошли к различиям в типах SQL, о которых я упоминал в начале. Если вы используете мой файл, то есть базу данных Excel, специальные символы будут такими же, как в базе данных Microsoft (SQL Server), то есть
%, что означает ноль или более любых символов
_ означает любой один символ и т. д.
Посмотрите, как это работает например, выполнив запрос ниже:

ВЫБЕРИТЕ ФИО, зарплату, должность ОТ сотрудников где фамилия типа 'B%'

ВЫБЕРИТЕ фамилию, зарплату, должность ОТ сотрудников

где фамилия типа 'B%'

Результат:


То есть все сотрудники, фамилия которых начинается на букву «Б».
Теперь посмотрим, как работает это заклинание:

ВЫБЕРИТЕ ФИО, зарплату, должность ОТ сотрудников ГДЕ позиция типа '%e%'

ВЫБЕРИТЕ имя, зарплату, должность ОТ сотрудников

ГДЕ должность типа '%e%'

результат:


Итак, у нас есть все позиции, в которых есть буква "е" (где угодно).Я рекомендую вам поиграть с оператором LIKE, потому что понимание того, как он работает, пригодится позже в других языках программирования (например, в VBA или Python).

6. Операторы И и ИЛИ - уточнение результатов запроса

Еще одним важным элементом SQL-запросов являются операторы AND и OR. Если вы используете Excel на английском языке, то… эти слова наверняка звучат для вас знакомо. Вероятно, в ваших формулах не раз появлялись функции =И() или =ИЛИ() :) В случае людей, использующих польскую языковую версию, имеем формулы =И() и =ИЛИ() соответственно.Почему я упоминаю об этом? Потому что принцип работы этих операторов одинаков практически во всех языках программирования. Вы знаете их из Excel, вы используете их везде :)

Но для тех, кто не использовал эти формулы в Excel, напомню, что:
ИЛИ - означает, что достаточно, чтобы был истинен один элемент выражения и тогда истинно все выражение
например число = 2 число ИЛИ = 3 ИЛИ число = 4 ИЛИ число = 5 будет верно для: чисел 2,3,4,5

И - означает, что ВСЕ элементы должны быть истинными, чтобы все выражение было истинным
например.: Имя = 'ALA' И фамилия = 'Kowalska' И город = 'Krakow' будут реальными только для сотрудника: ALA Kowalska из города Кракова.

Попробуем попрактиковаться в работе этих операторов, запросив в базе данных Excel имена, зарплаты и должности всех сотрудников, работающих на должности «бухгалтер» или «аналитик»:

ВЫБЕРИТЕ ФИО, зарплату, должность ОТ сотрудников ГДЕ должность = «бухгалтер» ИЛИ должность = «аналитик»

ВЫБЕРИТЕ имя, зарплату, должность ИЗ сотрудников

ГДЕ должность = «бухгалтер» ИЛИ должность = «аналитик»

Результат:

Такое повторение названия столбца, для которого должно быть применено условие, то есть: ГДЕ должность = «бухгалтер» или должность = «аналитик» также встречается, например, вв VBA (макросы удалось зацепить ;)
Что касается И, то мы можем проверить, как оно работает, запросив в базе данных имена, зарплаты и должности сотрудников в должности «продавец», которые зарабатывают более 1400 :

ВЫБЕРИТЕ ФИО, зарплату, должность ОТ сотрудников ГДЕ должность = 'продавец' И зарплата > 1400 9000 3

ВЫБЕРИТЕ имя, зарплату, должность ОТ сотрудников

ГДЕ должность = «продавец» И зарплата> 1400

Результат:

7.ORDER BY - результат запроса сортировки

В предыдущих двух разделах (WHERE и об операторах) я показал, как использовать фильтрацию в SQL. На этом этапе вы увидите, как сортировать данные с помощью SQL.
Как вы, наверное, догадались, для этого используется команда ORDER BY :) Она работает с двумя дополнительными предложениями. Их название зависит от базы данных в которой мы работаем, в одних это будет слово DESC а в других DESCENDING но принцип работы тот же, то есть:

  • ASC — сортировка по возрастанию (в Excel ей соответствует кнопка A -> Z)
  • DESC — сортировка по убыванию (в Excel соответствует кнопке Z -> A)

Итак, мы хотим отобразить имена сотрудников и их зарплаты, отсортированные по человеку с самым высоким доходом.Вы уже знаете, что нам нужно запросить у базы столбцы имени и зарплаты, но дополнительно в конце запроса мы добавим наш ORDER BY

ВЫБЕРИТЕ ФИО, зарплату ОТ сотрудников СОРТИРОВАТЬ ПО зарплате DESC

Выберите имя, зарплату ОТ сотрудников СОРТИРОВАТЬ ПО зарплате DESC

Результат:

8. Основные функции языка SQL.

Что такое функция SQL? Проще говоря, это то же самое, что и функция в Excel :) Это волшебное слово/заклинание, которое возвращает конкретный результат на основе предоставленного значения/аргумента.
Чтобы было смешнее, имена функций повторяются между языками программирования или программами. Почему? Потому что если что-то работает, то… зачем это менять ;)


Например, в Excel (на английском языке) у вас есть функция =МЕСЯЦ(), результатом которой является номер месяца от заданной даты. В SQL также есть функция, которая возвращает номер месяца на основе даты.Как вы думаете, как это называется? :) ТОЧНО !!! месяц ;)
Итак, если бы я хотел посмотреть, в каком месяце он был принят на работу, какого сотрудника я могу написать такой запрос:

ВЫБЕРИТЕ фамилию, месяц (дату приема на работу) ИЗ сотрудников

ВЫБЕРИТЕ фамилию, месяц (дату приема на работу) ОТ сотрудников

результат:


Видите, как это просто? :) И таких совпадений предостаточно.
Другой пример = SUM(), который в Excel возвращает сумму из заданного диапазона. Итак, как может выглядеть SQL-запрос, который даст нам сумму зарплат всех сотрудников компании:

ВЫБЕРИТЕ сумму (зарплату) ОТ сотрудников 9000 3

90 117

ВЫБЕРИТЕ сумму (зарплату) ОТ сотрудников

90 116

Результат:


Это то же самое, что и Среднее и т.д.просто помните разницу, о которой я упоминал в языках SQL. В нашем случае надо писать AVG, а не Average, но надеюсь вы понимаете, что к чему :)

ВЫБЕРИТЕ ср (зарплата) ОТ сотрудников 9000 3

ВЫБЕРИТЕ среднюю (зарплату) ОТ сотрудников

результат:


Этих функций в SQL очень много и я не буду их все здесь перечислять, но помните, если вы знаете функцию из Excel, то очень вероятно, что такая же (или похожая) функция тоже есть можно найти в SQL, Python, PHP или другом языке.


Пользователи Excel, при выполнении вышеуказанных запросов, наверное, заметили, что они имеют аналогичный эффект при создании сводной таблицы и "бросании" столбца зарплаты в правый нижний угол (т.е. к значению).

Что мы делаем в Excel, если хотим увидеть сумму заработков всех сотрудников, но с разбивкой по отдельным должностям?


Достаточно перетащить столбец должности в левый нижний угол, т.е. в раздел "строки", и вот :) Сводная таблица таким образом сгруппирует строки/зарплаты тех сотрудников, которые работают на одинаковых должностях.


Слово ГРУППЫ здесь ключевое. Потому что это наш следующий, очень полезный оператор, используемый в SQL-запросах :)

9. ГРУППИРОВАТЬ ПО

Если вы хотите использовать SQL-запрос для получения эффекта сводной таблицы, используйте оператор группировки и укажите SQL столбец, в котором следует группировать повторяющиеся строки. В нашей базе данных Excel есть столбец JOB в таблице «Сотрудники». Строки в этом столбце повторяются.

Если я хочу узнать, какова средняя зарплата для данной должности, я напишу такой запрос:

ВЫБЕРИТЕ должность, СРЕДНЯЯ (зарплата) ИЗ сотрудников СГРУППИРОВАТЬ ПО должности 9000 3

ВЫБЕРИТЕ должность, СРЕДНЯЯ (зарплата) ОТ сотрудников СГРУППИРОВАТЬ ПО должности

Результат:


Во второй колонке нашего результата я вижу, что средняя зарплата по должности MANADZER имеет слишком много знаков после запятой.2 хватило бы :)


Прежде чем вы начнете изучать, какая функция SQL может округлить результат, подумайте, как это будет выглядеть в Excel. Точно! = ОКРУГЛ (число, сколько_мест_когда)


Так что в SQL это будет очень похоже :)

ВЫБЕРИТЕ должность, ОКРУГЛ (СРЕДНЯЯ (зарплата), 2) ИЗ СОТРУДНИКОВ СГРУППИРОВАТЬ ПО должностям 9000 3

ВЫБЕРИТЕ должность, ОКРУГЛ (СРЕДНЯЯ (зарплата), 2) ИЗ СОТРУДНИКОВ СГРУППИРОВАТЬ ПО должности

Результат:


Помните, что наши запросы выполняются не к реальной базе данных, а к Excel, а у Excel есть свои идеи для отображения данных.Поэтому, если я добавлю в наш столбец символ валюты (например, «PLN»), Excel отобразит столбец зарплаты в виде текста (т. е. выровняет результат по левому краю ячейки).


Проверьте этот запрос:

ВЫБЕРИТЕ должность, ОКРУГЛ (СРЕДНЯЯ (зарплата), 2) и «PLN» ОТ сотрудников СГРУППИРОВАТЬ ПО должности

ВЫБЕРИТЕ должность, ОКРУГЛ (СРЕДНЯЯ (зарплата), 2) и «PLN» ОТ сотрудников СГРУППИРОВАТЬ ПО должности

результат:


И так далее и тому подобное :)

Как я уже упоминал в начале, то, что мы здесь практиковали, является лишь введением в тему SQL.Если вам интересно, почему в заголовке второго столбца нашего результата (Expr1001) какой-то странный текст, как я могу изменить его на что-то более человечное? Или вы хотите спросить базу в каком городе работает какой сотрудник, или в каком городе вы лучше всего зарабатываете (т.е. объединить данные из нескольких таблиц в результате запроса), рекомендую воспользоваться обширными знаниями и практическим опытом моего коллеги , кто проводит обучение SQL на HintMine в различных базах :)

Например такие курсы:


А если вы хотите научиться использовать SQL в Excel, комбинировать данные из файлов Excel с запросами SQL, свяжитесь со мной по телефону:

.

Как присвоить результат SQL-запроса переменной Unix?

Как присвоить результат SQL-запроса переменной Unix?

В первой команде вы назначаете вывод команды даты в переменной "var"! $ () или «означает назначение вывода команды. А во второй команде вы печатаете значение переменной «var». Теперь пришло время SQL-запроса.

Как присвоить результат SQL-запроса переменной?

Синтаксис для присвоения значения переменной SQL в запросе SELECT: @имя_переменной:=значение, где имя_переменной — это имя переменной, а значение — полученное значение.Переменная может использоваться в последующих запросах везде, где разрешено выражение, например, в предложении WHERE или в операторе INSERT.

Как назначить вывод grep переменной?

Синтаксис следующий:

  1. VAR = `имя-команды` VAR =" `word grep / path / to / file`" ## или ## VAR = $ (имя-команды) VAR = "$ ( слово grep /путь/к/файлу) "...
  2. echo" Сегодня $(дата) "## или ## echo" Сегодня `дата`" ...
  3. сегодня = $(дата) .. .
  4. echo "$ сегодня"...
  5. myuser="$(grep'^vivek'/etc/passwd)" echo "$myuser"

6 января.2017

Как экспортировать вывод SQL в Excel в Unix?

Вот краткий совет о том, как легко экспортировать результаты SQL в файл Excel.

  1. Шаг 1: Войдите в базу данных с помощью SQL PLUS.
  2. Шаг 2: Установите теги с помощью приведенной ниже команды. ВКЛЮЧИТЬ HTML-разметку.
  3. Шаг 3: Кэшируйте вывод в файл. …
  4. Шаг 4: Запустите запрос SQL. …
  5. Шаг 5: Отключите катушку.
  6. Шаг 6: Откройте выходной файл XLS, чтобы просмотреть результат.

Как запустить сценарий SQL из командной строки Unix?

Запуск сценария при запуске SQL * Plus

  1. Выполните команду SQLPLUS, введя свое имя пользователя, косую черту, пробел, @ и имя файла: SQLPLUS HR @SALES. SQL * Plus запускается, запрашивает пароль и запускает сценарий.
  2. Включите свое имя пользователя в первую строку файла. Следуйте за командой SQLPLUS с @ и именем файла.

Как присвоить переменную в Oracle?

Как объявить переменную и использовать ее в том же сценарии Oracle SQL?

  1. Используйте раздел DECLARE и вставьте следующий оператор SELECT в BEGIN и END; . Получает доступ к переменной с & глупымваром.
  2. Используйте ключевое слово DEFINE и получите доступ к переменной.
  3. Использование ключевого слова VARIABLE и доступ к переменной.

25 августа. 2010

Как присвоить несколько значений переменной в SQL?

  1. К вашему сведению, в SQL Server 2008 и более поздних версиях следующий синтаксис также допустим для вставки нескольких явных значений в табличную переменную: `вставить в значения @values ​​('A'), ('B' ), ('C') - Chiramisu 21 июня 13 в 23:36.
  2. Осторожно, анекдот: недавно я сделал что-то подобное, чтобы упростить обслуживание запроса…

Можно ли устанавливать переменные в SQL?

Переменные в процедурах SQL определяются оператором DECLARE. Значения могут быть присвоены переменным с помощью оператора SET или оператора SELECT INTO, либо в качестве значения по умолчанию при объявлении переменной. ... Вы также можете присвоить результат оператора GET DIAGNOSTICS переменной.

Как установить переменную в операторе выбора?

Если оператор select возвращает несколько значений, переменной присваивается последнее возвращенное значение.Используйте TOP 1, если ваш запрос возвращает несколько строк. Вы можете использовать это, но помните, что ваш запрос возвращает 1 результат, несколько результатов вызовут исключение.

Каков результат grep?

Команда grep используется для поиска текста или поиска в указанном файле строк, соответствующих указанным строкам или словам. По умолчанию grep отображает совпадающие строки. Используйте grep для поиска строк текста, соответствующих одному или нескольким регулярным выражениям, и выведите список только соответствующих строк.

Поддерживает ли grep регулярное выражение?

Регулярное выражение Grep

GNU grep поддерживает три синтаксиса регулярных выражений: базовый, расширенный и совместимый с Perl. В простейшей форме grep интерпретирует шаблоны поиска как базовые регулярные выражения, когда тип регулярного выражения не указан.

90 100

Как выполнить поиск?

В самой основной форме команда grep состоит из трех частей. Первая часть начинается с команды grep, за которой следует искомый шаблон.За строкой следует имя файла, который ищет grep. Команда может содержать множество параметров, вариантов шаблонов и имен файлов.

Как экспортировать результаты SQL-запроса в Excel SQL Developer?

Действия по экспорту результатов запроса в Excel в Oracle SQL Developer

  1. Шаг 1: Запустите запрос. Для начала вам нужно запустить запрос в SQL Developer. …
  2. Шаг 2: Откройте мастер экспорта. …
  3. Шаг 3: Выберите формат Excel и место, куда вы хотите экспортировать файл.…
  4. Шаг 4: Экспортируйте результат запроса в Excel.

Как экспортировать данные из Unix в Excel?

Просто добавьте форматирование к файлу Unix, создайте на выходе файл с разделителями-запятыми (CSV). Теперь загрузите CSV-файл на FTP-сервер в Windows.

Как записать данные в сценарий оболочки в Excel?

Я хочу вставить данные из текстового файла в Excel с помощью сценария оболочки nawk -vr = 4 -vc = 4 -v val = $ a -F, 'BEGIN {OFS = ","}; НР!=Р; NR == r {$ c = val; Распечатайте файл.csv» Я использовал вышеизложенное, чтобы вставить значение $a в строку 4, столбец 4 в файле Excel. csv и это...

.

Что такое Power Query и для чего он нужен? - Курсы и обучение

Что такое Power Query?

Power Query — это технология ETL (извлечение, преобразование и загрузка), которая позволяет загружать, преобразовывать и уточнять данные для удовлетворения конкретных потребностей, связанных с широко понимаемым анализом данных. Функции Power Query доступны в Excel и Power BI Desktop. Эта технология является одной из трех, имеющихся в Excel, а также есть такие инструменты, как Power Pivot и Power Map.

Где я могу найти Power Query?

В зависимости от имеющейся у нас версии Excel Power Query может быть доступен непосредственно с определенной вкладки на ленте, или вам может потребоваться загрузить этот инструмент в виде отдельной надстройки.

Если у нас Excel 2010 или 2013, мы должны загрузить этот инструмент как дополнение к Excel — вы можете сделать это бесплатно с веб-сайта Microsoft — ссылка ЗДЕСЬ. После установки дополнения на ленте появится новая вкладка, из которой у нас будет доступ к инструменту.К сожалению, Microsoft больше не поддерживает эти версии Excel, поэтому, если мы хотим быть в курсе обновлений Power Query, мы должны переключиться как минимум на версию 2016 или более позднюю.

Начиная с версии 2016, Power Query больше не надстройка, а неотъемлемая часть Excel. Мы можем найти их на вкладке Данные , в разделе Загрузка и преобразование (для версии 2016) или Загрузка и преобразование данных (для версии 2019/365).

Однако, если у нас есть версия Excel старше 2010 года, мы не можем воспользоваться преимуществами инструмента Power Query.Единственный выход из этой ситуации — получить более новую версию Excel.

Как работает Power Query?

С помощью Power Query вы можете искать источники данных, подключаться и затем преобразовывать данные в соответствии со своими потребностями. После завершения преобразования мы можем поделиться полученными результатами или использовать наш запрос для создания отчетов.

При использовании инструмента часто есть несколько общих шагов, которые обычно разбиваются на четыре шага:

  1. Установление соединения, то есть установление соединения с локальными данными, в облаке или другом сервисе,
  2. Преобразование - изменение данных по мере необходимости, но без их повреждения в исходном источнике,
  3. Объединение данных - создание данных модель из нескольких источников,
  4. Совместное использование - возможность сохранить запрос, поделиться им или использовать его для создания отчета в виде, например.сводная таблица.

Создать соединение

Чтобы иметь возможность редактировать данные, нам сначала нужно импортировать их в Power Query. Мы можем подключиться к одному источнику данных, например к книге Excel, или к нескольким источникам, таким как базы данных, источники Azure и облачные службы.

Импорт выполняется нажатием кнопки Загрузка данных на вкладке Данные или прямым нажатием соответствующей кнопки в разделе Загрузка и преобразование данных .К источникам относятся данные из Интернета, файлов, баз данных, Azure, онлайн-сервисов, других источников и даже таблиц в книге Excel.

После подключения к источнику данных будет отображаться панель предварительного просмотра ( Navigator ) данных, с которыми вы имеете дело. Если мы хотим анализировать и преобразовывать данные, мы должны выбрать кнопку Transform data (в зависимости от версии Power Query кнопка может называться Edit ).

Конвертировать

Эффективный анализ данных чаще всего заключается в преобразовании наших данных, т.е.перестановка столбцов, изменение порядка строк, скрытие ненужных значений (фильтрация), изменение типов данных и т. д. Все это и многое другое возможно с Power Query Editor (также можно встретить название Query Editor ). Это специальное окно, в котором отображаются преобразования данных и каждое наше действие фиксируется в виде так называемого шаги. Благодаря им у нас есть возможность отменить, повторить данное действие, изменить порядок или модифицировать любой шаг — все для того, чтобы легко достичь намеченной цели.

Окно редактора похоже на окно Excel, оно также состоит из ленты с несколькими вкладками, и в каждой из них у нас есть разделы с различными вариантами преобразования данных. Интересно, что в Power Query мы не найдем такой кнопки, как назад — но у нас есть возможность удаления использованных шагов , что дает аналогичный эффект. Если мы хотим отредактировать шаг, у нас также есть эта опция, просто нажмите на значок шестеренки рядом с одним из шагов, и вместо удаления действия мы изменим его.

Power Query позволяет выполнять множество типов преобразований, которые можно найти на вкладках Главная , Преобразование или Добавить столбец , дополнительно у нас есть возможность создавать собственные преобразования на языке M (это язык, используемый в Power Query). Такие изменения можно сделать в Расширенном редакторе , который находится на вкладке Главная , в разделе Запрос .

Положение

Преобразования, примененные к объединенным данным, т. е. наши примененные шаги: запрос .Мы можем отобразить все запросы в данной книге Excel из панели Запросы и соединения , которая появится после нажатия одноименной кнопки на вкладке Данные , раздел Запросы и соединения .

Запрос можно вернуть на лист (т.е. загрузить ), отредактировать (тогда мы перейдем в редактор Power Query) или просто удалить - все эти варианты появляются при наведении мышки на имя нашего запрос.

Кроме того, у нас также есть возможность предоставления данных результатов. Одним из них является загрузка в , где мы можем выбрать место и способ отображения данных на листе (например, данные в виде таблицы или отчет в виде сводной таблицы).

Мы также можем дублировать запрос, создавать ссылки, объединять запросы и добавлять их, используя их как строительные блоки для повторного использования. Наконец, мы можем экспортировать такое соединение, и все это для передачи только соединения между компьютерами, которое занимает мало места, вместо того, чтобы отправлять целые книги Excel.Эти и другие опции доступны по правой кнопке мыши — достаточно нажать на наше соединение, чтобы получить список всех этих опций.

Зачем использовать Power Query?

Потому что это инструмент, который значительно облегчает работу с большими наборами данных. Он работает эффективно, он может повторить все наши шаги, хранящиеся в запросе (только данные Обновить ), что позволяет нам отказаться от построения сложных и трудоемких макросов.Чтобы в полной мере ощутить всю мощь Power Query, лучше всего посмотреть их в действии, поэтому ниже вы можете просмотреть наш веб-семинар по Power Query.

Просмотреть веб-семинар Power Query в Excel

90 125

См. также

Обучение:

.

Как писать SQL-запросы Microsoft Access с нуля

Microsoft Access ad

, пожалуй, самый мощный инструмент во всем пакете Microsoft Office, однако он озадачивает (а иногда и пугает) опытных пользователей Office. Для более крутой кривой обучения, чем Word или Excel, как кто-то может обернуть голову, используя этот инструмент? На этой неделе Брюс Эппер рассмотрит некоторые вопросы, поднятые этим вопросом от одного из наших читателей.

Читатель спрашивает:

У меня проблема с написанием запроса в Microsoft Access.

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

Я хочу узнать, какие продукты в таблице A можно найти в таблице B. Я хочу добавить столбец с именем «Результаты», который содержит название продукта из таблицы A, если он существует, и название продукта из таблицы B, если он не существует в таблице A.

Есть ли у вас какие-либо советы?

Ответ Брюса:

Microsoft Access — это система управления базами данных (СУБД), разработанная для использования на компьютерах Windows и Mac.Он использует механизм базы данных Microsoft Jet для обработки и хранения данных. Он также предоставляет графический интерфейс для пользователей, который почти устраняет необходимость понимать язык структурированных запросов (SQL).

SQL — это командный язык для добавления, удаления, обновления и возврата информации, хранящейся в базе данных, а также для изменения основных компонентов базы данных, таких как добавление, удаление или изменение таблиц или индексов.

Начальная точка

Если вы новичок в Access или любой другой СУБД, я советую вам начать с этих ресурсов, прежде чем продолжить:

  • Что такое база данных? Так что же такое база данных? [MakeUseOf объясняет] Так что же такое база данных? [MakeUseOf объясняет] Для программиста или энтузиаста технологии концепция базы данных может восприниматься как нечто само собой разумеющееся.Тем не менее, для многих людей сама концепция базы данных кажется немного странной… Райан Дьюб использует Excel для представления основ реляционных баз данных.
  • Краткое руководство по Microsoft Access 2007 Краткое руководство по Microsoft Access 2007 Краткое руководство по Microsoft Access 2007, которое представляет собой общий обзор Access и компонентов, составляющих базу данных Access.
  • Краткое руководство по таблицам Microsoft Access 2007 Краткое руководство по таблицам Microsoft Access 2007 Краткое руководство по таблицам Microsoft Access 2007 посвящено созданию вашей первой базы данных и таблиц для хранения структурированных данных.
  • Краткое руководство по Microsoft Access 2007 Query Краткое руководство по Microsoft Access 2007 Query В кратком руководстве по Microsoft Access 2007 Query рассматривается, как возвращать определенные фрагменты данных, хранящиеся в таблицах базы данных.

Базовое понимание терминов в этих статьях облегчит понимание следующего.

Связь с базой данных и стандартизация

Представьте, что вы управляете бизнесом, который продает 50 различных типов виджетов по всему миру.У вас есть клиентская база из 1250 человек, и вы продаете этим клиентам в среднем 10 000 виджетов. В настоящее время вы используете одну электронную таблицу для отслеживания всех ваших продаж — по сути, единую таблицу базы данных. И каждый год он добавляет в таблицу тысячи строк.

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

Если Джоан Смит выйдет замуж за Теда Бейнса и возьмет его фамилию, каждая строка, содержащая ее имя, теперь должна быть изменена. Проблема усугубляется, если у вас есть два разных клиента по имени «Джоан Смит». Стало намного сложнее поддерживать согласованность данных о продажах из-за довольно частых инцидентов.

Используя базу данных и нормализовав данные, мы можем разбить элементы на несколько таблиц, таких как запасы, клиенты и заказы.

Глядя на клиентскую часть нашего примера, мы удаляем столбцы «Имя клиента» и «Адрес клиента» и помещаем их в новую таблицу. На изображении выше я лучше разложил вещи для более подробного доступа к данным. Новая таблица также включает столбец для первичного ключа (ClientID) — число, которое будет использоваться для доступа к каждой строке в этой таблице.

В исходную таблицу, из которой мы удалили эти данные, мы должны добавить столбец внешнего ключа (ClientID), указывающий на соответствующую строку, содержащую информацию для этого конкретного клиента.

Теперь, когда Джоан Смит меняет свое имя на Джоан Бэйнс, это изменение нужно сделать только один раз в таблице Customer. Любая другая ссылка из связанных таблиц будет извлекать соответствующее имя клиента, а отчет, в котором анализируется, что Джоан купила за последние 5 лет, будет получать все заказы как на девичью, так и на супружескую фамилию без необходимости изменения способа создания отчета.

В качестве дополнительного преимущества также сокращается общий объем используемой памяти.

Типы объединения

SQL определяет пять различных типов соединения: ВНУТРЕННЕЕ, ЛЕВОЕ ВНЕШНЕЕ, ПРАВОЕ ВНЕШНЕЕ, ПОЛНОЕ ВНЕШНЕЕ и ПЕРЕКРЕСТНОЕ. Ключевое слово OUTER является необязательным в операторе SQL.

Microsoft Access позволяет использовать ВНУТРЕННИЙ (по умолчанию), ЛЕВЫЙ ВНЕШНИЙ, ПРАВЫЙ ВНЕШНИЙ и КРЕСТ. FULL EXTERNAL как таковой не поддерживается, но с помощью LEFT OUTER, UNION ALL и RIGHT OUTER его можно подделать за счет большего количества циклов ЦП и операций ввода-вывода.

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

Давайте посмотрим, как работают базовые муфты, а затем изменим их в соответствии с нашими потребностями.

Давайте начнем с создания двух таблиц, ProdA и ProdB, со следующими свойствами дизайна.

AutoNumber — это автоматически увеличивающееся длинное целое число, которое присваивается записям, добавляемым в таблицу.Параметр «Текст» не был изменен, поэтому он принимает текстовую строку длиной до 255 символов.

Теперь заполните их некоторыми данными.

Чтобы показать различия в работе трех типов соединений, я удалил элементы 1, 5 и 8 из ProdA.

Затем создайте новый запрос, выбрав Create > Query Design . Выберите обе таблицы в диалоговом окне «Показать таблицу» и нажмите «Добавить », затем «Рядом с ».

Щелкните ProductID в таблице ProdA, перетащите его на ProductID в таблице ProdB и отпустите кнопку мыши, чтобы создать связь между таблицами.

Щелкните правой кнопкой мыши линию между таблицами, представляющими взаимосвязи между элементами, и выберите «Объединить свойства» .

Тип комбайна 1 (ВНУТРЕННИЙ) выбран по умолчанию. Вариант 2 — это левый внешний вызов, а вариант 3 — правый внешний вызов.

Сначала мы рассмотрим соединение INNER, поэтому нажмите OK, чтобы закрыть диалоговое окно.

В конструкторе запросов выберите поля, которые вы хотите видеть, из раскрывающихся списков.

Когда мы запустим запрос (красный восклицательный знак на ленте), он покажет поле ProductName из обеих таблиц со значением из таблицы ProdA в первом столбце и ProdB во втором.

Обратите внимание, что в результатах отображаются только значения, для которых Product ID в обеих таблицах совпадает. Хотя ProductID = 1 находится в таблице ProdB, он не отображается в результатах, поскольку ProductID = 1 не существует в таблице ProdA. То же самое верно для ProductID = 11.Существует в таблице ProdA, но не существует в таблице ProdB.

С помощью кнопки «Просмотр» на ленте и перехода к представлению SQL можно увидеть сгенерированный дизайнером SQL-запрос, используемый для получения этих результатов.

  ВЫБЕРИТЕ ProdA.ProductName, ProdB.ProductName ИЗ ВНУТРЕННЕГО СОЕДИНЕНИЯ PRODUA ProdB ON ProdA.ProductID = ProdB.ProductID;  

Вернувшись в режим конструктора, измените тип соединения на 2 (ЛЕВО ВНЕШНЕЕ). Запустите запрос, чтобы увидеть результаты.

Как видите, каждая запись в таблице ProdA представлена ​​в результатах, и только те записи в ProdB, которые имеют соответствующий ProductID в таблице ProdB, отображаются в результатах.

Пустое место в столбце ProdB.ProductName — это особое значение (NULL), так как в таблице ProdB нет соответствующего значения. Это будет важно позже.

  ВЫБЕРИТЕ ProdA.ProductName, ProdB.ProductName ИЗ PRODUA LEFT JOIN ProdB ON ProdA.ProductID = ProdB.ProductID;  

Попробуйте то же самое с третьим типом соединения (ПРАВОЕ ВНЕШНЕЕ).

Результаты показывают все в таблице ProdB, когда она показывает пустые (известные как NULL) значения, для которых таблица ProdA не имеет соответствующего значения. Пока что это приближает нас к результатам, желаемым в вопросе нашего читателя.

  ВЫБЕРИТЕ ProdA.ProductName, ProdB.ProductName FROM ProdA RIGHT JOIN ProdB ON ProdA.ProductID = ProdB.ProductID;  

Использование функций в запросе

Результаты функции также могут быть возвращены как часть запроса.Нам нужен новый столбец под названием «Результаты» в нашем наборе результатов. Его значением будет содержимое столбца ProductName таблицы ProdA, если ProdA равно (не NULL), в противном случае оно должно быть взято из таблицы ProdB.

Для получения этого результата можно использовать функцию Immediate IF (IIF). Функция принимает три параметра. Первое — это условие, которое должно быть оценено как True или False. Второй параметр — это значение, которое возвращается, если условие имеет значение True, а третий параметр — это значение, которое возвращается, если условие имеет значение False.

Полная конструкция функции для нашей ситуации выглядит следующим образом:

  IIF (ProdA.ProductID Is Null, ProdB.ProductName, ProdA.ProductName)  

Обратите внимание, что параметр условия не проверяется на равенство. Значение Null в базе данных не имеет значения, которое можно было бы сравнить с любым другим значением, включая любое другое значение Null. Другими словами, значение Null не равно Null. Всегда. Чтобы исправить это, мы проверяем значение с помощью ключевого слова «Is».

Мы могли бы также использовать «Is Not Null» и переставить параметры True и False, чтобы получить тот же результат.

Когда вы помещаете это в Query Designer, вы должны ввести всю функцию в Поле: поле. Вы должны использовать псевдоним для создания столбца «Результаты». Для этого вам нужно добавить к этой функции префикс «Результаты:», как показано на скриншоте ниже.

Эквивалентом этого кода SQL будет:

  SELECT ProdA.ProductName, ProdB.ProductName, IIF (ProdA.ProductID Is Null, ProdB.ProductName, ProdA.ProductName) КАК РЕЗУЛЬТАТЫ СПРАВА В ПРИЛОЖЕНИИ ProdA.Pod.Идантификационный номер продукта;  

Теперь, когда мы запустим этот запрос, он выдаст следующие результаты.

Здесь мы видим для каждой записи, где таблица ProdA имеет значение, которое отражено в столбце результатов. Если в таблице ProdA нет записи, в Результаты появляется запись из ProdB, это именно то, о чем спрашивал наш читатель.

Дополнительные ресурсы для изучения Microsoft Access см. в книге Джоэла Ли Как изучить Microsoft Access: 5 бесплатных онлайн-ресурсов Как изучить Microsoft Access: 5 бесплатных онлайн-ресурсов Как изучить Microsoft Access: 5 бесплатных онлайн-ресурсов Вам нужно управлять большой объем данных? Вы должны взглянуть на Microsoft Access.Наши бесплатные учебные ресурсы помогут вам начать работу и приобрести навыки для более сложных проектов. .

.

Смотрите также

Только новые статьи

Введите свой e-mail

Видео-курс

Blender для новичков

Ваше имя:Ваш E-Mail: