powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / минимальная дата
3 сообщений из 3, страница 1 из 1
минимальная дата
    #40077153
aslanaslan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
здравствуйте всем
у меня есть таблица
календарь выплат
id, id_klient, id_dogovor, summa, date_viplat, pogasheno, ostalos_pogasit, nomer_viplati
и viplati_view id, id_calendar, id_klient, id_dogovor, summa, date_viplat, pogasheno, ostalos_pogasit, nomer_viplati все тоже самое
из вьюшки выплаты надо выбрать строку по id клиента с минимальной датой
пробовал через select into получается каша
...
Рейтинг: 0 / 0
минимальная дата
    #40077164
aslanaslan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
aslanaslan, declare
id_calendar number(10);
id_dogovor1 number(10);
id_klient1 number(10);
id_dogovor number(10);
id_klient number(10);
date_viplat date;
date_viplat1 date;
summa1 number(10);
pogasheno1 number(10);
ostalos_pogasit1 number(10);
nomer_viplati1 number(10);
summa number(10);
pogasheno number(10);
ostalos_pogasit number(10);
nomer_viplati number(10);
begin
select min(date_viplat) into date_viplat1 from viplati_view where 17 = :calendar_viplat.id_klient group by id_klient, summa, pogasheno, ostalos_pogasit, nomer_viplati, id_dogovor;
select summa into summa1 from viplati_view where id_klient = :calendar_viplat.id_klient group by id_klient, summa, pogasheno, ostalos_pogasit, nomer_viplati, id_dogovor;
select pogasheno into pogasheno1 from viplati_view where id_klient = :calendar_viplat.id_klient group by id_klient, summa, pogasheno, ostalos_pogasit, nomer_viplati, id_dogovor;
select ostalos_pogasit into ostalos_pogasit1 from viplati_view where id_klient = :calendar_viplat.id_klient group by id_klient, summa, pogasheno, ostalos_pogasit, nomer_viplati, id_dogovor;
select nomer_viplati into nomer_viplati1 from viplati_view where id_klient = :calendar_viplat.id_klient group by id_klient, summa, pogasheno, ostalos_pogasit, nomer_viplati, id_dogovor;
select id_dogovor into id_dogovor1 from viplati_view where id_klient = :calendar_viplat.id_klient group by id_klient, summa, pogasheno, ostalos_pogasit, nomer_viplati, id_dogovor;
select id_klient into id_klient1 from viplati_view where id_klient = :calendar_viplat.id_klient group by id_klient, summa, pogasheno, ostalos_pogasit, nomer_viplati, id_dogovor;
end;
...
Рейтинг: 0 / 0
минимальная дата
    #40077230
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aslanaslan,

какая у Вас версия оракля?

полей много keep будет неудобен

используйте row_number()/rownum=1


одна строка с максимальной ЗП в 10 отделе
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
SQL> l
  1* select * from (select e.* from emp e where deptno=10 order by sal desc ) where rownum=1
SQL> /

     EMPNO ENAME      JOB              MGR HIREDATE        SAL       COMM     DEPTNO
---------- ---------- --------- ---------- -------- ---------- ---------- ----------
      7839 KING       PRESIDENT            17.11.81       5000                    10

SQL>



ps
select
список "полей" через запятую
into
список переменных через запятую
from ttt...

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


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