Найдите исполнителя для вашего проекта прямо сейчас!
Разместите заказ на фриланс-бирже и предложения поступят уже через несколько минут.

Имеется селект, который вытаскивает запись базируюсь на масимальном значения 1-го полня

SELECT *

FROM

(

SELECT discount, osp_id, sero_id, estpt_id,

ROW_NUMBER() OVER

(PARTITION BY osp_id, sero_id, estpt_id ORDER BY festpae_id DESC) as festpae_id

FROM database1 data1

JOIN database2 data2 ON data2.id = data1.attr_id

WHERE data1.interest_rate = 1

AND data1.ordet_id = data2.id

AND data1.objt_attr_id = data2.objt_attr_id

)

WHERE festpae_id = 1

Список запией:

DISCOUNT OSP_ID SERO_ID ESTPT_ID FESTPAE_ID VALUE

---------- ---------- ---------- ---------- ---------- ----------

50 619356 3931831 2144 NULL 0

40 619356 3931831 2144 NULL 1

30 619356 3931831 2144 2000743 0

15 619356 3931831 2144 2000744 1

Выполняя селект, я получу вот это

DISCOUNT OSP_ID SERO_ID ESTPT_ID FESTPAE_ID VALUE

---------- ---------- ---------- ---------- ---------- ----------

50 619356 3931831 2144 NULL 0

Мои знания не велики, по этому обращаюсь к Вам.

Мне нужно принять во внимания ещё некоторые поля и условия

  • Если существуют записи где festpae_id is NULL, тогда нужна проверка на festpae_id is NULL and value = 1, соответсвенно он должен вернуть запись где discount 40( в данном случае)
  • Если не существует записей где festpae_id is null, тогда он должен смотреть на макисмальное (festpae_id) (в данном случае использую ROW_NUMBER() ) и value = 1.
  • Во всех других случаях он должен возвращать пустоту.
5 лет назад
Prosecutorr
Байкер 
29 лет
10 лет в сервисе
Был
год назад

Заявки фрилансеров

Нет заявок фрилансеров