Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2011.10.09;
Скачать: CL | DM;

Вниз

Выборка первых записей   Найти похожие ветки 

 
mrdoc   (2010-01-28 15:20) [0]

Кто знает, как получить запрос выполняющий выборку клиентов их счетов и первых операций по счету.

Имеются представления
Счета (номер счета, дата открытия, состояние, ИНН, наименование клиента)
Клиенты (Наименование клиента, адрес, дата регистрации)
Операции (дата операции, сумма операции)

Представления Клиенты и Организации связаны с представлением Счета через поле ID.

Нужно за любое количество шагов получить реестр: номер счета, дата открытия, состояние, инн, наименование клиента, адрес, дата регистрации, дата (первой) операции, сумма (первой) операции.

написал запрос
Select Счета.*, Клиенты.*
From Счета, Клиенты
Where Счета.ID = Клиенты.ID

а вот как получить к этому первую операцию по клиенту не пойму.

попробовал запрос
Select ID, min (дата операции)
From Операции
Group by ID

группирует, но нет суммы.

База данных ORACLE.
для решения не обязательно использовать один запрос, можно и несколько разных, результаты которых потом свести в другой БД, например MS Access.

Задача практическая, необходима для проведения аудита.
на формирование указанного реестра есть совсем немного времени :-(


 
Sergey13 ©   (2010-01-28 15:39) [1]

> [0] mrdoc   (28.01.10 15:20)
> Представления Клиенты и Организации связаны с представлением Счета через поле ID.

Что за "организации" и где эти поля?


 
Sergey13 ©   (2010-01-28 15:54) [2]

Как то так можно попробовать

Select Счета.*, Клиенты.*, Операции.*
From Счета, Клиенты, Операции,
(select операция.счет_ID,min(дата) as f_date from операции where счет.ID=операция.ID group by операция.счет_ID) first_oper
Where Счета.ID = Клиенты.ID
and Счета.ID=опрерации.счет_ID
and first_oper.счет_ID=Счета.ID
and first_oper.f_date=опрерации.дата

ЗЫ: задолбался язык переключать


 
Кщд   (2010-01-28 15:55) [3]


select acc.num, acc.start_dt, acc.status,
      t.inn, t.name, t.address,
      t.reg_date,
      min(op.dt) op_dt,
      min(op.name) keep (dense_rank first order by op.dt) op_name
from client t
      join account acc
        on t.acc_id = acc.id
      join operation op
        on acc.id = op.acc_id
group by acc.num, acc.start_dt, acc.status,
        t.inn, t.name, t.address,
        t.reg_date        


 
Кщд   (2010-01-28 15:56) [4]

к Кщд   (28.01.10 15:55) [3]
op_name - это, конечно, опечатка: должно быть val, т.е. сумма



Страницы: 1 вся ветка

Текущий архив: 2011.10.09;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.011 c
2-1308354496
Германн
2011-06-18 03:48
2011.10.09
Как рассчитать "необходимый и достаточный" размер кнопки TButton


15-1307651392
Юрий
2011-06-10 00:29
2011.10.09
С днем рождения ! 10 июня 2011 пятница


2-1308499032
Geo
2011-06-19 19:57
2011.10.09
Fast Report. Количество совпадений из таблицы


2-1288558535
Rembo2010
2010-10-31 23:55
2011.10.09
Как узнать ip-адрес?


2-1308515045
Geo
2011-06-20 00:24
2011.10.09
Видимость комонентов приналожении