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

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

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

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





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

Показывайте, как сделали то, что сделали. Будет проще.
...
Рейтинг: 0 / 0
Необходимо вычислить итоговую сумму комиссионного вознаграждения
    #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
Необходимо вычислить итоговую сумму комиссионного вознаграждения
    #40120321
Gerasimenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
heaven33rus,

если данных относительно немного, то, пожалуй, здесь подходит create view а к ней уже Group by
...
Рейтинг: 0 / 0
Необходимо вычислить итоговую сумму комиссионного вознаграждения
    #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
Необходимо вычислить итоговую сумму комиссионного вознаграждения
    #40120348
heaven33rus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Gerasimenko,

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

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

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



Мне вместо t2.id и t3.id надо какие-то другие имена столбцов подставить?
...
Рейтинг: 0 / 0
Необходимо вычислить итоговую сумму комиссионного вознаграждения
    #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
Необходимо вычислить итоговую сумму комиссионного вознаграждения
    #40120473
heaven33rus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Gerasimenko,

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

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


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