Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.004 c
2-1308531707
Германн
2011-06-20 05:01
2011.10.09
Некоторые особенности создания PopupMenu.


15-1308300426
И. Павел
2011-06-17 12:47
2011.10.09
Бокс


2-1308570515
Alex_C
2011-06-20 15:48
2011.10.09
Событие OnTimer


15-1306432866
м0м0к0
2011-05-26 22:01
2011.10.09
MSQL SERVER 2005 + delphi проблема с ADOCONNECTION


15-1308328493
alexdn
2011-06-17 20:34
2011.10.09
по Inno setup




   Наверх