Главная страница
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.47 MB
Время: 0.008 c
2-1308655885
Kilowatt
2011-06-21 15:31
2011.10.09
Label поверх ProgressBar


2-1308498013
Gu
2011-06-19 19:40
2011.10.09
TOpenDialog - zip как файлы


2-1308227087
sanekin3737
2011-06-16 16:24
2011.10.09
CGI и базы данных


3-1264750706
ruslan_as
2010-01-29 10:38
2011.10.09
Кто нибудь имел дело с базой POET (компания POET Software)


15-1308169803
Юрий
2011-06-16 00:30
2011.10.09
С днем рождения ! 16 июня 2011 четверг