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

Вниз

Написать SQL-запрос, осуществляющий выборку из 2-х таблиц.   Найти похожие ветки 

 
КрЫска ©   (2007-05-18 01:12) [0]

Здравствуйте! Подскажите как написать SQL-запрос, осуществляющий выборку из 2-х таблиц. Таблицы содержат информацию такого вида:

Табл. Chel.

Number | Fam    | Imya
______________________________
101    |Иванов   |Иван
102    |Петров   |Петр
103    |Сидоров |Сидор

Табл. Adres

Number| Adr                              | Date_Save
________________________________________________________
101    |Москва,...                        |12.03.1998
101    |Санкт-Петербург               |30.10.2000
101    |Москва,...                        |01.04.2006
102    |Саратов, ул. Такая-то, д.1 |12.03.1998
102    |Саратов, ул. Такая-то, д.1 |30.10.2000
103    |г.Киров                            |30.10.2000
103    |Киров                              |15.06.2001
103    |Киров, пр. им...., д.2         |10.12.2005

В табл. Adres записи с одним и тем же значением поля Number отличаются датой сохранения, но могут совпадать в других полях.
В табл. Chel поле Number ключевое и объединение строк осуществляется по нему.
При этом в результирующую таблицу нужно выдавать не все записи из табл. Adres соответствующие одному значению поля Number,а только запись, сохраненную последней. Т.е. в результате запроса к этим 2-м таблицам должен быть такой результат:

Number | Fam     | Imya| Adr                                | Date_Save
________________________________________________________
101    |Иванов   |Иван |Москва,...                        |01.04.2006
102    |Петров   |Петр  |Саратов, ул. Такая-то, д.1 |30.10.2000
103    |Сидоров |Сидор|Киров, пр. им...., д.2          |10.12.2005

Ну вот и все... :(

Заранее спасибо.


 
ЮЮ ©   (2007-05-18 03:59) [1]

А СУБД указать слабо?


 
novoalex ©   (2007-05-18 08:11) [2]


> КрЫска ©   (18.05.07 01:12)

Индивидуальный идентификатор присутствует в Adres ?


 
Sergey13 ©   (2007-05-18 08:33) [3]

> [0] КрЫска ©   (18.05.07 01:12)

Общая идея такая
select * from chel c,adres a
where c.number=a.number and a.data_save=(select max(data_save) from adres a1 where a1.number=c.c.number)


 
novoalex ©   (2007-05-18 08:36) [4]


> novoalex ©   (18.05.07 08:11) [2]

Если есть то:


SELECT     tt.Number, Chel.Fam, Chel.Imya, tt.Adr, tt.Data_Save
FROM         Adres tt INNER JOIN
                     Chel ON tt.Number = Chel.Number
WHERE     (Id IN
                         (SELECT     MAX(Id) AS Id
                           FROM          Adres dd
                           WHERE      tt.Number = dd.Number))


 
novoalex ©   (2007-05-18 13:12) [5]


> novoalex ©   (18.05.07 08:36) [4]

В принципе если поле Date_Save содержит значение времени занесения строки в таблицу Adres, то Id можно заменить на Date_Save.

WHERE     (Date_Save IN
                        (SELECT     MAX(Date_Save) AS Date_Save
                          FROM          Adres dd
                          WHERE      tt.Number = dd.Number))


 
Павел Калугин ©   (2007-05-18 13:28) [6]

> [5] novoalex ©   (18.05.07 13:12)

не in а =
см [3] Sergey13 ©   (18.05.07 08:33)


 
Кщд ©   (2007-05-18 13:28) [7]

novoalex ©   (18.05.07 13:12) [5]
как Вы думаете, как долго будет выполняться Ваш запрос, например, на таблице-миллионнике?)


 
КрЫска ©   (2007-05-18 13:59) [8]

Вопрос оч даже хороший, ну просто замечтательный :). Сегодня и проверю.
Спасибо всем, надеюсь получится ;)


 
КрЫска ©   (2007-05-18 23:28) [9]

ЕщЁ раз всем огромное спасибо! Все получилось (просто все гениальное - просто!)!  :D



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

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

Наверх




Память: 0.49 MB
Время: 0.024 c
15-1187418761
systopler
2007-08-18 10:32
2007.09.16
Ошибка при открытии DLL-ки


3-1179321528
DmitrichJ
2007-05-16 17:18
2007.09.16
Access. Работа с таблицами $


3-1177857180
Galiaf
2007-04-29 18:33
2007.09.16
Вместо строки ссылка в мастере подстановок


6-1169490868
Khabibulin
2007-01-22 21:34
2007.09.16
Авторизация с помощью idHTTP


2-1187980519
led
2007-08-24 22:35
2007.09.16
Edit