Гость
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Отсортировать по имени / 13 сообщений из 13, страница 1 из 1
12.12.2020, 00:59
    #40027085
Antairka
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отсортировать по имени
Исходные данные:

3 таблицы:

Таблица 1: Агенты
Столбцы:
- агент_id
- ФИО

Таблица 2: Виды страхования
Столбцы:
- вид_id
- наименование
- комиссия

Таблица 3: Договор
Столбцы:
- договор_id
- стр_сумма
- стр_премия
- агент_id
- вид_id

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

Решение: в части комиссии
SELECT (Договоры.Стр_премия*Виды_страхования.Комиссия)/100
from Договоры inner join Виды_страхования
on Договоры.Вид_id = Виды_страхования.Вид_id

Вопрос:
как добавить ФИО и сортировку сотрудников?

Спасибо за помощь)
...
Рейтинг: 0 / 0
12.12.2020, 01:02
    #40027086
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отсортировать по имени
Antairka
как добавить ФИО и сортировку сотрудников?
Добавить ещё один join - для агентов.
...
Рейтинг: 0 / 0
12.12.2020, 01:19
    #40027087
Antairka
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отсортировать по имени
alexeyvg, да, конечно, но вот у меня не выходит(


вот такой код:

SELECT Агенты.ФИО, (Стр_премия*Виды_страхования.Комиссия)/100
from Агенты inner join (Договоры inner join Виды_страхования
on Договоры.Вид_id = Виды_страхования.Вид_id)
on Агенты.агент_id = Договоры.Агент_id

выходит вот такая ошибка:

сообщение: 245, уровень: 16, состояние: 1, процедура: my_proc7, строка: 16 [строка начала пакета: 37]
Ошибка преобразования значения nvarchar "Иванова И.И.
...
Рейтинг: 0 / 0
12.12.2020, 03:53
    #40027098
Antairka
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отсортировать по имени
Antairka, точнее такая сообщение: 245, уровень: 16, состояние: 1, процедура: my_proc7, строка: 16 [строка начала пакета: 40]
Ошибка преобразования значения nvarchar "Иванова И.И.

понимаю проблему несовместимости, но не понимаю как исправить(
...
Рейтинг: 0 / 0
12.12.2020, 10:52
    #40027112
godsql
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отсортировать по имени
Antairka,

Имелось ввиду
Код: sql
1.
2.
3.
4.
SELECT Агенты.ФИО, (Договоры.Стр_премия*Виды_страхования.Комиссия)/100
from Договоры 
inner join Виды_страхования on Договоры.Вид_id = Виды_страхования.Вид_id
inner join Агенты on Агенты.id=Договоры.агент_id 



PS. 1C какая-нибудь?
...
Рейтинг: 0 / 0
12.12.2020, 10:56
    #40027113
andreymx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отсортировать по имени
Antairka,

1. обрезан текст ошибки
2. неизвестна структура таблиц и данные в них. Навскидку - перепутаны типы
...
Рейтинг: 0 / 0
12.12.2020, 11:19
    #40027115
godsql
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отсортировать по имени
Antairka,

Смотрите пакет, смотрите, что куда записывается в строчках 37-40
...
Рейтинг: 0 / 0
12.12.2020, 13:06
    #40027122
Antairka
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отсортировать по имени
godsql,

святейший человек, спасибо) я не до конца поняла смысл объединения, таблиц, спасибо огромное)

P.S. в моем случае сортировка не требуется, но если б была нужна, то куда order by вставлять?

куда ни вставь везде ругается на синтаксис, но вроде нет его у order by

сообщение: 156, уровень: 15, состояние: 1, процедура: my_proc2, строка: 15 [строка начала пакета: 15]
Неправильный синтаксис около ключевого слова "order".
...
Рейтинг: 0 / 0
12.12.2020, 13:07
    #40027123
Antairka
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отсортировать по имени
andreymx, спасибо, поняла ошибку)
...
Рейтинг: 0 / 0
12.12.2020, 14:01
    #40027132
godsql
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отсортировать по имени
Antairka,

если просто по фио.

Код: sql
1.
2.
3.
4.
5.
SELECT Агенты.ФИО, (Договоры.Стр_премия*Виды_страхования.Комиссия)/100
from Договоры 
inner join Виды_страхования on Договоры.Вид_id = Виды_страхования.Вид_id
inner join Агенты on Агенты.id=Договоры.агент_id 
order by Агенты.ФИО
...
Рейтинг: 0 / 0
12.12.2020, 17:04
    #40027178
Antairka
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отсортировать по имени
godsql, мда уж, а вот перенести на новую строчку я не догадалась( спасибо огромное)))))
...
Рейтинг: 0 / 0
12.12.2020, 20:56
    #40027265
godsql
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отсортировать по имени
Antairka,

при чем тут новая строчка?
Это чисто для удобства
можно записать так
Код: sql
1.
SELECT Агенты.ФИО, (Договоры.Стр_премия*Виды_страхования.Комиссия)/100 from Договоры inner join Виды_страхования on Договоры.Вид_id = Виды_страхования.Вид_id inner join Агенты on Агенты.id=Договоры.агент_id order by Агенты.ФИО


и все будет работать
...
Рейтинг: 0 / 0
23.11.2021, 15:36
    #40114201
Krevetka74
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отсортировать по имени
Добрый день!
Господа, всё-таки нужна помощь.
Аналогичная структура, задача та же:
В БД INSURANCE создать хранимую процедуру с параметром, позволяющую вычислить итоговую сумму комиссионного вознаграждения в разрезе агентов с сортировкой по Ф. И. О. по заданному коду вида страхования.

Пишу:
select агенты.ФИО , (Договоры.стр_премия * виды_страхования.комиссия ) /100 from Договоры
inner join виды_страхования on Договоры.вид_id = виды_страхования.вид_id
inner join Агенты on Договоры.агент_id = Договоры.агент_id
order by Агенты.ФИО

На выходе 36 строк:

Иванова А.А. 3000.000000
Иванова А.А. 500.000000
Иванова А.А. 750.000000
Иванова А.А. 18200.000000
Иванова А.А. 1950.000000
Иванова А.А. 5516.000000
Иванова А.Б. 5516.000000
Иванова А.Б. 1950.000000
Иванова А.Б. 18200.000000
Иванова А.Б. 750.000000
Иванова А.Б. 500.000000
Иванова А.Б. 3000.000000
Петрова А.А 3000.000000
Петрова А.А 500.000000
Петрова А.А 750.000000
Петрова А.А 18200.000000
Петрова А.А 1950.000000
Петрова А.А 5516.000000
Петрова А.Б. 5516.000000
Петрова А.Б. 1950.000000
Петрова А.Б. 18200.000000
Петрова А.Б. 750.000000
Петрова А.Б. 500.000000
Петрова А.Б. 3000.000000
Сидорова А.А 3000.000000
Сидорова А.А 500.000000
Сидорова А.А 750.000000
Сидорова А.А 18200.000000
Сидорова А.А 1950.000000
Сидорова А.А 5516.000000
Сидорова А.Б. 5516.000000
Сидорова А.Б. 1950.000000
Сидорова А.Б. 18200.000000
Сидорова А.Б. 750.000000
Сидорова А.Б. 500.000000
Сидорова А.Б. 3000.000000



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


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