Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2011.10.09;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.004 c
2-1308388748
Gu
2011-06-18 13:19
2011.10.09
Своя кнопка и чекбокс в messagebox


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


2-1308647088
Nikita_novice
2011-06-21 13:04
2011.10.09
Нужен совет мастеров


15-1307623782
oxffff
2011-06-09 16:49
2011.10.09
YAR под windows


15-1308579867
Kerk
2011-06-20 18:24
2011.10.09
Тестирование





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский