powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Нужна помощь с задачей
6 сообщений из 6, страница 1 из 1
Нужна помощь с задачей
    #39891760
krayshon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Для каждого месяца найти сотрудников с наивысшей премией, если премия за 1 месяц у нескольких сотрудников оказалась одинаковая, выбрать всех таких сотрудников.

Есть 2 варианта, но они оба не полностью решают задачу, нужна помощь.
Код: sql
1.
2.
SELECT month,name, prem from t2, t1
where prem in (select max(prem) from t1) and t2.id = t1.Id_emp


данный вариант выводит только 1 сотрудника с макс премией за все месяцы.
Код: sql
1.
2.
SELECT month,name,MAX(prem) over(partition by month ) as Max_Prem from t1, t2
where t2.id = t1.Id_emp


данный вариант выводит максимальную премию за месяц и присваивает ее всем строкам в этом месяце и так с каждым.
...
Рейтинг: 0 / 0
Нужна помощь с задачей
    #39891770
londinium
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
покажите, пожалуйста, примеры таблиц с данными
...
Рейтинг: 0 / 0
Нужна помощь с задачей
    #39891774
krayshon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
londinium
покажите, пожалуйста, примеры таблиц с данными

t2:
-id
-name

t1:
-id_emp (внешний ключ таблицы t2)
-month
-prem
...
Рейтинг: 0 / 0
Нужна помощь с задачей
    #39891786
Minamoto
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krayshon,

Код: sql
1.
2.
3.
4.
SELECT TOP (1) WITH TIES
[month],name, prem 
FROM t2 INNER join t1 ON t2.id_emp = t1.id
ORDER BY rank() OVER (PARTITION BY [MONTH] ORDER BY prem DESC)
...
Рейтинг: 0 / 0
Нужна помощь с задачей
    #39891789
londinium
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор-id_emp (внешний ключ таблицы t2)
-month
-prem

попробуйте что-тов таком духе
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
WITH CTE AS
(
  SELECT T.ID_EMP,T.MONTH,T.PREM,
  RANK()OVER(PARTITION BY T.MONTH ORDER BY T.PREM DESC)AS XCOL
  FROM T1 AS T
)
SELECT C.ID,C.MONTH,C.PREM
FROM CTE AS C
WHERE C.XCOL=1
...
Рейтинг: 0 / 0
Нужна помощь с задачей
    #39891791
krayshon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Minamoto
krayshon,

Код: sql
1.
2.
3.
4.
SELECT TOP (1) WITH TIES
[month],name, prem 
FROM t2 INNER join t1 ON t2.id_emp = t1.id
ORDER BY rank() OVER (PARTITION BY [MONTH] ORDER BY prem DESC)


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


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