Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Связать 2 таблицы [D7, MSSQL]


Sergey2 ©   (2009-03-02 11:04:00) 

Есть две таблицы

table1.date1 table1.code
10.02.2009   1
15.02.2009   1
20.02.2009   1

table2.date2 table2.code
12.02.2009   1
16.02.2009   1
17.02.2009   1
24.20.2009   1
Необходимо связать их по полю Code и выбрать для каждой строки первой таблицы минимальное значение по дате из второй с условием что эта дата больше даты первой таблицы.

Тоесть результат выборки должен быть вот такой:

Code table1.Date1 table2.Date2
1      10.02.2009   12.02.2009  
1      15.02.2009   16.02.2009
1      20.02.2009   24.02.2009  


select t1.date1, t2.minDate2
from table1 t1 left join
(select min(date2) as minDate2, code from table2 group by code) t2 on t1.code = t2.code and t2.mindate2 > t1.date1


Данная попытка решить задачу  отрабатывает не так, как надо возвращая на последнюю запись первой таблицы все записи из второй, так как они все удовлетворяют условию, что t2.mindate2 > t1.date1.


Sergey2   (2009-03-02 11:24:00) [1]

большое спасибо


Sergey13   (2009-03-02 11:09:00) [2]

select t1.code, t2.min(Date2)
from table1 t1,table2 t2 t2
where t1.code = t2.code and t2.mindate2 > t1.date1
group by t1.code


Наверх

Титульная страница Поиск, карта сайта Написать письмо