Расчет баланса на конец периода




Предложение UPDATE

 

https://msdn.microsoft.com/en-us/library/ms173454(v=SQL.110).aspx - агрегирующие функции t-sql

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

Пример - база данных метеостанции. Повторите это пример в своей базы данных (префикс бд - meteo_)

Разработайте несколько программ/запросов на языке t-sql

Посмотрите ролик - https://youtu.be/5J-DQSCaeK8

Создайте БД (скрипт - DM2017-3 meteocreate)

· Используется два показателя - температура (название - temp) и давление (название - press). Добавьте их в таблицу.

· Разработайте программный код sql, который позволяет заполнить таблицу 20 случайными наблюдениями (температура = 22+-2 градуса) https://youtu.be/Z2LSYDMyMrQ

· Заполните значения атмосферного давления. При этом измените дату таким образом, чтобы показания давления отставали от наблюдений температуры на 5 дней.

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

o Вариант 1 - delete [data] wherevalue_id = 2 (2 - это идентификатор какого-то показателя)

o Вариант 2 - delete [data] wherevalue_idin (selectvalue_idfromvalue_namewherevalue_name = 'press') - запись с использованием подзапроса

· Подготовьте отчет - Время наблюдения, Название показателя, Значение показателя. Отсортируйте данные по Дате и Названию.

· Подготовьте отчет - Дата (без времени), Название показателя, Значение показателя. Отсортируйте данные по Дате и Названию.

· Подготовьте отчет - Год, Месяц, Название показателя, Среднее значение показателя за период

· Подготовьте отчет - Год, Месяц, Максимальноезначениепоказателя,Минимальноезначениепоказателя, Наименование показателя

· Найдите дни, в которых количество наблюдений не соответствует

 

 

Используйте файл DM2017-3 script 1 Createforeignkey, чтобы создать базу данных stxtnames_<фамилия>_<группа>.

Необходимо сделать так, чтобы в таблице tsmStationText могли находиться только те записи, которые связаны с tsmStation.

 

 

Расчет баланса на конец периода

 

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

Разработайте базу данных, содержащую сведения о счетах, клиентах банка, а также о денежных переводах. Название базы данных - transactions_<фамилия>_<группа>

1. Разработайте базу данных и заполните её;

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

3. Напишите запрос для получения всех счетов одного человека;

4. Напишите запрос, с помощью которого можно узнать все транзакции одного человека;

5. Напишите запрос для получения количества транзакций одного человека

6. Напишитезапрос, который ищет транзакции, относящиеся к заданному счету

7. Напишите запрос, определяющий сумму, на которую надо уменьшить баланс заданного счёта

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

a. Вариант без транзакций

b. Вариант с использованием транзакции - все действия будут выполнены в одной транзакции

 

Интересныевозможности:

1. Каквставитьзначение в identity? Включение/отключениережима

2. Каквставтьтакуюстроку, котораянеможетбытьвставлена? Включение/отключениеограниченийцелостности

3. Какудалитьсразувседанные

 

Разработкабазыданныхвеб-чата

 

 

Задача №2

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

a. Наименование работы

b. Единицу измерения

c. Объем выполненной работы

d. Фактические трудозатраты

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

Присланные сведения должны сохраняться в базе данных для последующего анализа. Выполните разработку схемы БД.

 

Метаданные - гденасамомделехранятсясведенияобовсехобъектахбазыданных?ОбInformation_schema. Используя БД AW 2012:

Напишитезапросы:

1. Всетаблицы

2. Сколькоколоноквсего

3. Сколькоколонокстроковоготипа, числовоготипа

 

Какначатьписатьзапросы к базеданных? - видео

Вариантысвязываниязаписейпривыполнениизапросов.

 

Разработайтебазуданныхмессенджера

1. Диалоги. Назовитебазуданных dialog_

2. Групповыеобсуждения. Бдmultichat_

Длядвухвариантовразработайтебазуданных, а такжевыполнитеразработкуследующихзапросов:

1. Получитьсвоисообщения

2. Получитьвсеначатыдиалоги

3.

 

Запросдляполучениячисласообщений в зависимостиотпола и возраста.Дляэтогопотребуетсясначалагруппироватьпользователей, а затем – выполнитьматематическиеоперациинадданными.

 

Опишитеалгоритм

 

ОЧеньсложныезапросы к базеданных:

1. Какпосчитатьуникальныезаписи?

2. Разница count(*) и count(field)?

3. Каксделатьфильтрацию - сложныеситуации - нескольковариантовдляработы

 

Разработайтерекомендательнуюсистемудлявыборафильма, которыйвамнравится. Рекомендательнаясистемыдолжна

 

 

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

 

 

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

Разработайтеигруpokemon go приусловии, чтоколичествопокемонов в заданнойлокацииявляетсяобщимдлявсехигороков.

Разработайтенесколькозапросов:

1. Забратьпокемона

2. Выпустить в заданныйквадратнесколькихпокемоновзаданноговида

3. Отметитьсвоеместоположение. Еслидвижениебыстрее 10 км/ч, торойденныекилометрынезасчитываются.

 

Сгенерируйтескриптдлябазыданных.

Задачапроголосование

 

Просвязываниенуженвидеоролик. Тривидасвязи

Проначаловыполнениязапросов – тоже.

Каксделатьпредставление

Какподключиться к бдиз excel,чтобыпостроитьграфик и красивыйпереключатель?

 

Задачапротранзакции – какпосчитатьостатокнаконецпериода, используя РБД и язык SQL?

 

SQL

План:

2. О логике SQL (мы описываем не как мы получаем, а что мы получаем)
Несколько примеров с SelectFrom без джойнов и прочего

3. О том что SQL несколько видов:

a. операторы определения данных (DataDefinitionLanguage, DDL):

i. CREATE создает объект БД (саму базу, таблицу, представление, пользователя и т. д.),

ii. ALTER изменяет объект,

iii. DROP удаляет объект;

b. операторы манипуляции данными (DataManipulationLanguage, DML):

i. SELECT выбирает данные, удовлетворяющие заданным условиям,

ii. INSERT добавляет новые данные,

iii. UPDATE изменяет существующие данные,

iv. DELETE удаляет данные;

c. операторы определения доступа к данным (DataControlLanguage, DCL):

i. GRANT предоставляет пользователю (группе) разрешения на определенные операции с объектом,

ii. REVOKE отзывает ранее выданные разрешения,

iii. DENY задает запрет, имеющий приоритет над разрешением;

d. операторы управления транзакциями (TransactionControlLanguage, TCL):

i. COMMIT применяет транзакцию,

ii. ROLLBACK откатывает все изменения, сделанные в контексте текущей транзакции,

iii. SAVEPOINT делит транзакцию на более мелкие участки

Примеры даем только на a и b

ProceduralDMLs — описывают действия над данными.

DeclarativeDMLs — описывают сами данные.

4. Говорим о Where и о простых операторах: =, >, <, like, in, orand,not, between,

5. Говорим о JOIN: FULL, OUHTER, LEFT, RIGHT, CROSS

6. Говорим об алгоритмах JOIN NESTED LOOP, HASH, MERGED

7. GROUP BY и HAVING

8. ORDER BY, DISTINCT

9. Говорим о последовательности выполнения команд в SQL (FROM, WHERE, GROUP BY, HAVING, SELECT, ORDER BY и проч)

10. ExplainAnalyse

11. Если осталось время еще практикуемся в джойнах (сложные условия и прочее)

 

 

Полезныестатьи:

https://www.madeiradata.com/loop-hash-and-merge-join-types



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2017-12-07 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: