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

3 таблицы:

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

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

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

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

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

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

Спасибо за помощь)
...
Рейтинг: 0 / 0
Отсортировать по имени
    #40027086
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Antairka
как добавить ФИО и сортировку сотрудников?
Добавить ещё один join - для агентов.
...
Рейтинг: 0 / 0
Отсортировать по имени
    #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
Отсортировать по имени
    #40027098
Antairka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Antairka, точнее такая сообщение: 245, уровень: 16, состояние: 1, процедура: my_proc7, строка: 16 [строка начала пакета: 40]
Ошибка преобразования значения nvarchar "Иванова И.И.

понимаю проблему несовместимости, но не понимаю как исправить(
...
Рейтинг: 0 / 0
Отсортировать по имени
    #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
Отсортировать по имени
    #40027113
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Antairka,

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

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

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

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

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

сообщение: 156, уровень: 15, состояние: 1, процедура: my_proc2, строка: 15 [строка начала пакета: 15]
Неправильный синтаксис около ключевого слова "order".
...
Рейтинг: 0 / 0
Отсортировать по имени
    #40027123
Antairka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
andreymx, спасибо, поняла ошибку)
...
Рейтинг: 0 / 0
Отсортировать по имени
    #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
Отсортировать по имени
    #40027178
Antairka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
godsql, мда уж, а вот перенести на новую строчку я не догадалась( спасибо огромное)))))
...
Рейтинг: 0 / 0
Отсортировать по имени
    #40027265
godsql
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Antairka,

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


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


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