Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Необходимо вычислить итоговую сумму комиссионного вознаграждения / 10 сообщений из 10, страница 1 из 1
15.12.2021, 16:44
    #40120308
heaven33rus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Необходимо вычислить итоговую сумму комиссионного вознаграждения
Добрый день. Я в sqlпрям ноль полный, но так уж получилось что мне надо сделать практическое задание :)
Какие-то знания у меня есть поверхностные в программировании, в excel не плох, думал это тоже не сложно, но что-то не хватает соображалки, как это сделать :))
В общем есть три таблицы, С агентами, договорами и видами страхования.
А задание такое:

В БД INSURANCE создать хранимую процедуру с параметром, позволяющую вычислить итоговую сумму комиссионного вознаграждения в разрезе агентов с сортировкой по Ф. И. О. по заданному коду вида страхования.
Расчет комиссионного вознаграждения производится по формуле
Комиссионное_вознаграждение = (Стр_премия∙Комиссия)/100

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

Фото созданных таблиц я приложил. Вставить их сюда красиво в виде не получилось :(





Спасибо.
...
Рейтинг: 0 / 0
15.12.2021, 16:58
    #40120313
Ennor Tiegael
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Необходимо вычислить итоговую сумму комиссионного вознаграждения
heaven33rus
Сделать процедуру по одному человеку, чтоб показало его комиссионное вознаграждение я кое как сделал, но как сделать чтоб прямо таблица была, я уже устал биться... помогите пожалуйста.
Вы сделали запрос по одному человеку, но не можете сделать по всем? Убрать из запроса фильтр по AgentId не пробовали?

Показывайте, как сделали то, что сделали. Будет проще.
...
Рейтинг: 0 / 0
15.12.2021, 17:20
    #40120319
heaven33rus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Необходимо вычислить итоговую сумму комиссионного вознаграждения
Ennor Tiegael,

Да чего народ то смешить... я вручную можно сказать это сделал.


Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
create PROCEDURE vc_name
as
declare @v1 INT
declare @v2 INT
declare @v3 INT
declare @v4 nchar(50)

SET @v1=(select стр_премия from Договоры where агент_id=11 and вид_id=100)
SET @v2=(select комиссия from Виды_страхования where вид_id=100)
SET @v3=@v1*@v2/100
set @v4=(select ФИО from Агенты where агент_id=11)
print @v4
print @v3



Можно вместо решения для начала алгоритм написать словами, я еще поковыряюсь сам. Просто не знаю даже в какую сторону смотреть...
...
Рейтинг: 0 / 0
15.12.2021, 17:26
    #40120321
Gerasimenko
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Необходимо вычислить итоговую сумму комиссионного вознаграждения
heaven33rus,

если данных относительно немного, то, пожалуй, здесь подходит create view а к ней уже Group by
...
Рейтинг: 0 / 0
15.12.2021, 17:49
    #40120332
Gerasimenko
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Необходимо вычислить итоговую сумму комиссионного вознаграждения
heaven33rus,

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
--CREATE VIEW AS DBO.FullIfo
  SELECT t1.Дог_id, t1.стр_сумма,  t1.стр_премия, t1.дата_нач, t1.дата-окон, t1.агент_id,  t1.вид_id,
               t2.Наименование, t2.Комиссия, t3.ФИО,
               CAST((t1.стр_премия - t2.Комиссия)/100  AS DECIMAL(3, 1) AS Комиссионное_вознаграждение
   FROM dbo.Договоры t1
      LEFT JOIN dbo.Виды_страхования t2 on
                 t2.id = t1.вид_id
       LEFT JOIN dbo.Агенты t3 on
                 t3.id = t1агент_id


посмотрите, что у вас получилось
GROUP BY И SUMM сами напишите
...
Рейтинг: 0 / 0
15.12.2021, 18:16
    #40120348
heaven33rus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Необходимо вычислить итоговую сумму комиссионного вознаграждения
Gerasimenko,

Вставил, ругается на AS и имена столбцов внизу...
...
Рейтинг: 0 / 0
15.12.2021, 19:06
    #40120375
PaulYoung
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Необходимо вычислить итоговую сумму комиссионного вознаграждения
heaven33rus,

закрывающей скобки на хватает от CAST
...
Рейтинг: 0 / 0
15.12.2021, 21:45
    #40120414
heaven33rus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Необходимо вычислить итоговую сумму комиссионного вознаграждения
PaulYoung,

Скобку поставил, а чего он ругается на:
Код: sql
1.
2.
3.
4.
Сообщение 207, уровень 16, состояние 1, строка 6
Недопустимое имя столбца "id".
Сообщение 207, уровень 16, состояние 1, строка 8
Недопустимое имя столбца "id".



Мне вместо t2.id и t3.id надо какие-то другие имена столбцов подставить?
...
Рейтинг: 0 / 0
16.12.2021, 01:00
    #40120454
Gerasimenko
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Необходимо вычислить итоговую сумму комиссионного вознаграждения
heaven33rus
PaulYoung,

Скобку поставил, а чего он ругается на:
Код: sql
1.
2.
3.
4.
Сообщение 207, уровень 16, состояние 1, строка 6
Недопустимое имя столбца "id".
Сообщение 207, уровень 16, состояние 1, строка 8
Недопустимое имя столбца "id".



Мне вместо t2.id и t3.id надо какие-то другие имена столбцов подставить?

t2.вид_id = t1.вид_id
t3.агент_id = t1.агент_id
мог бы и сам догадаться...
...
Рейтинг: 0 / 0
16.12.2021, 07:36
    #40120473
heaven33rus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Необходимо вычислить итоговую сумму комиссионного вознаграждения
Gerasimenko,

Это я первым делом попробовал, получил ошибку "Сообщение 8115, уровень 16, состояние 8, строка 1
Ошибка арифметического переполнения при преобразовании numeric к типу данных numeric."
и решил, что это я что-то не то сделал и нужно нечто другое.

Сейчас разобрался еще раз, чисто интуитивно решил сравнить параметр DECIMAl (3.1) который. А у меня в таблице он (10.0).
Поправил и все получилось. Дальше попробую сам отсортировать.
Спасибо большое!
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Необходимо вычислить итоговую сумму комиссионного вознаграждения / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]