Данная задача может пригодится для соискателя на должность разработчика SQL Server в туристической компании. Суть ее в следующем
Есть 2 таблицы:
Orders (покупки) с полями: id, price, id_client, date_order, category (тур, экскурсия, билеты, отель)
clients (клиенты) с полями: id, name, status (активный\неактивный)
1. Напишите запрос, который выведет активных клиентов и кол-во их покупок за последнюю неделю.
2. Вывести процентное соотношение активных и неактивных клиентов.
3. Вывести процент от общего кол-ва покупок по каждой категории товара
4. Вывести клиентов, которые покупали все 4 категории товаров
5. Вывести клиентов, у которых было 2 и более купленных тура за последние пол года 6. Вывести кол-во заказов за текущий месяц и кол-во заказов за аналогичный месяц прошлого года в разрезе категорий.
Решение
Ещё...
Целью данной задачи является создание запроса или процедуры для изучения ваших знаний SQL Server. Задача не совсем простая и решений может быть несколько. Если Вы претендуете на вакансию Разработчика SQL Server, то Вам будет дано на решение не более 3 дней
Необходимо написать скрипт, который выводит таблицу, в которой для каждого клиента указана следующая информация
1. Наименование клиента
2. ИНН клиента
3. № счета, по которому есть открытая поставка (действующая на дату 01.01.2021) по продукту «Продукт А».
Если есть несколько счетов, удовлетворяющие данному условию, необходимо вывести тот счет, по которому создана
открытая поставка по «Продукт А» с максимальной датой окончания. Если нет счетов, удовлетворяющих данному условию,
необходимо вывести счет с максимальной датой оплаты, в котором есть строки на «Продукт А» на подключение или продление.
Не более одного счета на клиента
4. Дата создания счета из п.3
5. Дата оплаты счета из п.3
6. Сумма счета по всем строкам из п.3
7. Оплата по счету по всем строкам из п.3
Примечания:
● У каждого счета должна быть хотя бы одна строка счета;
● По каждой строке счета может быть создано любое количество поставок, а может не быть ни одной;
● У клиента может быть несколько параллельных поставок по одному продукту.
● Cost и Paid указывается за суммарное количество продуктов/услуг в строке счета, т.е. стоимость 1 шт. из строки счета = Cost/Cnt.
Существующие методы отправки писем позволяют отправить письмо в виде текста или html. Гораздо приятнее получить сообщение в котором есть текст, оформленный в виде таблицы. Его читать удобнее, например, если пришел счет. С дугой стороны, отправка таких писем требует от вас знание html разметки и стилей письма. Без них создать такой сообщение достаточно сложно. Особое внимание обратите на тэги html: table,border,h2,tr,td,br Заранее изучите их назначение. Вот пример отправки письма на основе скрипта SQL Server.
Ещё...
Отправка почты с использованием SQL Server редко используется специалистами, т.к. существует много способов отправить почту используя языки высокого уровня, например, C#. Они позволяют проверить текст письма на ошибки, отобразить их на экране и только потом отправить письмо. SQL Server не обладает WInForm интерфейсом. Но иногда бывает нужно отправить такое письмо администратору, например, из триггера таблицы, после того, какие-то данные изменили базу данных (ордера, ошибки, заказы и т.п.). Рассмотри как это можно сделать
Для начала нужно создать Аккаунт для отправки письма. Вот пример.
Ещё...
На этом этапе проверяется ваша способность мыслить не стандартно. А суть вот в чем.
Прошу предоставить после решения основных заданий решение с возможностью масштабирования по количеству металлов. Необходимо внести изменения во все необходимые объекты из заданий таким образом, чтобы система легко вместо четырех металлов (Ni, Cu, Pt, Pd), еще держала пару сотен металлов сверху. Тестирования этого предоставлять не нужно, для себя только убедитесь, что решение рабочее. Хочется увидеть именно мысль решения. Но скрипты для необходимых изменений предоставьте.
Ещё...
Заключительным этапом прохождения квалификационного отбора необходимо создать хранимую процедуру.
Входные параметры :
- период бурения (даты от-до),
- код месторождения
Выход :
Кол-во проб по элементам в каждом классе содержания за выбранный период бурения по месторождению (пустые классы не выводить, использовать связь со справочником классов). Выходной результат должен быть пронумерован, классы отсортированы по возрастанию. Результат процедуры выводится только на экран в SQL Server Management Studio, сохранять в какую-либо таблицу НЕ НАДО! Без использования временных таблиц!
Пример выходных данных.
Номер по порядку Класс Кол-во проб Ni Кол-во проб Cu Кол-во проб Pt Кол-во проб Pd
1 0.00005-0.001 3 4 8 0
2 0.005-0.01 3 0 8 0
3 0.5-1 0 0 8 0
4 1-10 0 0 1 1
(предоставить скрипт создания процедуры, пример использования : входные данные , результат)
Ещё...
Это задание тоже относится к одной и той же теме, работы со скважинами
Поля таблицы следующие
- Код скважины (должен обязательно присутствовать в таблице описания скважины)
- Глубина (число до двух знаков после запятой, не может быть больше фактической глубины скважины из таблицы описания, проверять в триггере при вводе и редактировании)
- содержание Ni (null или 0.00001-100%, число до 5 знаков после запятой)
- содержание Cu (null или 0.00001-100%, число до 5 знаков после запятой)
- содержание Pt (null или 0.00001-100%, число до 5 знаков после запятой)
- содержание Pd (null или 0.00001-100%, число до 5 знаков после запятой)
Примечание. Первые два поля уникальны, т.е. для одной скважины может быть несколько глубин с разными результатами анализов. (предоставить скрипт создания таблицы, триггера и заполнения)
Ещё...
Это третье задание из 6 предложенных ранее для тестирования знаний по Miccosoft SQL Server. Кажется, что оно самое простое. Но от его решения будет зависеть в дальнейшем решение SP процедуры
Таблица должна содержать следующие классы содержаний (min – max, формат хранения данных выбираете самостоятельно ):
- 0.00005-0.001
- 0.001-0.005
- 0.005 – 0.01
- 0.01 -0.5
- 0.5- 1
- 1-10
- 10-50
- 50-100
(предоставить скрипт создания таблицы и заполнения)
Ещё...
Если Вы разобрались с 1 заданием, то в этом задании тоже будет создавать таблица, но с некоторыми другим параметрами. В решение пропущено часть кода и доработать код вы должные его сами. Это сделано для того, чтобы вы научились программировать, а не просто читать sql код
Создаем таблицу Описания скважин. Список полей для данной таблицы
- Код скважины (уникальное текстовое, до 20 символов)
- Код месторождения (связать со справочником месторождений)
- Дата начала бурения скважины ( не ранее 1950 и не позднее текущего года, по умолчанию: текущая дата)
- Дата окончания бурения скважины ( не ранее 1950 и не позднее текущего года)
- Глубина скважины фактическая (положительное число до двух знаков после запятой, не более 2000 метров)
Примечание. Формат поля Кода скважины: ББ-0000бббб (необязательные: 2 заглавных русских буквы и тире, обязательные: 4 цифры, далее любые строчные буквы и цифры). Например: ОМ-0023бис, 0023, 0023бис, М-0023клин1
Алгоритм проверки кода реализовать в отдельной функции. В триггере при вводе и редактировании проверять формат скважины, если не подходит, то по возможности корректировать. Например: 8 -> 0008, 80бис -> 0080бис, с-80->С-0080,СС80->СС-0080, С80->С-0080.
В остальных случаях – сообщение об ошибке, операцию отменять (предоставить скрипт создания таблицы, триггера) Заполнить таблицу произвольными данными (предоставить скрипт с командами ввода данных)
Ещё...
Примеры, начинающиеся со слова Задание, пригодятся вам для проверки знаний на основе Microsoft SQL Server. Это нужно, например, для прохождения тестов на вакансию, связанную с программированием T-SQL Server. Срок выполнения таких задач не может быть более 1-2 дней. Иначе интерес к вам как специалисту будет потерян.
Вам предлагается создать таблицу справочник месторождений.
- Код месторождения (целый числовой)
- Широта (десятичные градусы, -pi/2 >= широта <= pi/2)
- Долгота (десятичные градусы, 0 >= долгота <= 2*pi)
- Зона (целый числовой, вычисляемые поле, Зона = div(Долгота/6) + 1)
- Наименование месторождения (уникальное текстовое, до 50 знаков)
- Система координат (Талнахская, Норильская; необязательное поле, предусмотреть возможность добавление новых систем координат)
- Дата ввода \ обновления
- Компьютер пользователя, выполнившего операцию
Примечание. Последние 2 поля должны обновляться в триггере с использованием системных функций (предоставить скрипт создания таблицы, триггера). Заполнить таблицу данными (предоставить скрипт с командами ввода данных)
Ещё...