Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Фукции по датам?
 
 автор: кукамака   (27.03.2007 в 18:31)   личное сообщение
 
 

Всем привет, подскажите как найти записи или хотябы просто значения.
Есть для простоты 2 таблицы:
Таб1.ПолеДата1, Таб1.ПолеХ,
и Таб2.ПолеДата2, Таб2.ПолеY
Таб1 и Таб2 связаны по полю Код1.
Надо найти запись: для мах Таб1.ПолеДата1 и внутри мах Таб2.ПолеДата2 и соответствующие им Таб1.ПолеХ, Таб2.ПолеY

  Ответить  
 
 автор: osmor   (27.03.2007 в 21:34)   личное сообщение
 
 

Для одного кода что - ли?
поподробнее плиз, что значит "и внутри мах Таб2.ПолеДата2 "

  Ответить  
 
 автор: Кукамака   (27.03.2007 в 22:20)   личное сообщение
 
 

Найти мах(Таб1.ПолеДата1) и значения полей соотв. записи. У него есть несколько записей из подинённой Таб2 - из них надо отобрать мах(Таб2.ПолеДата2) и значения полей соотв. записи.
Беда в том, что когда формируешь запрос - находишь только саму макс.дату, а соотвт. ей значения полей ...
Получилось объяснить?
Если нет, то может кину вариант :)

  Ответить  
 
 автор: Ирча   (28.03.2007 в 08:15)   личное сообщение
 
 

А если таким образом?
SELECT Таб2.Код2, Таб2.Дата2, Таб2.Поле2
FROM Таб2
WHERE (((Таб2.Дата2)=(SELECT Max(Таб2.Дата2) AS [Max-Дата2]
FROM Таб2)));

  Ответить  
 
 автор: osmor   (28.03.2007 в 08:49)   личное сообщение
 
 

Я понял так.
В таблице Таб1 нужно найти запись с максимальным ПолеДата1. Взять значения Код1 и ПолеХ из этой записи.
Затем из таблицы Таб1 получить все записи соответствующие получененному Код1 из них выбрать запись с максимальным ПолеДата2 и получить из этой записи ПолеХ.
Так?

  Ответить  
 
 автор: Кукамака   (28.03.2007 в 09:28)   личное сообщение
 
 

Олег: малость иначе:
Затем из таблицы Таб2 получить все записи соответствующие получененному Код1 из них выбрать запись с максимальным ПолеДата2 и получить из этой записи ПолеY.

Ирча: верно, но это для одной т-цы, а у меня 2. У каждой таб1.дата1 может быть несколько записей из таб2 с полями Дата2, полеY

Спасибо, ребят, одним запросом не обойтись, у меня выборка по нескольким таб-м, надо код писать.

  Ответить  
 
 автор: Ирча   (28.03.2007 в 09:37)   личное сообщение
 
 

Одним действительно не обойтись, но если этот вложить в еще один, все будет... просто из Ваших слов не очень понятно как джойнить данные из первой и второй таблиц)

  Ответить  
 
 автор: osmor   (28.03.2007 в 12:58)   личное сообщение
 
 

А такой вопрос в табл1 для одной даты могут быть несколько код1?

  Ответить  
 
 автор: osmor   (28.03.2007 в 13:02)   личное сообщение
 
 

Ну вот попробуй так:

SELECT TOP 1 Таблица1.дата1, Таблица1.ПолеX,  (SELECT TOP 1  Таблица2.ПолеY
FROM Таблица2 where Таблица2.код1 = Таблица1.код1
ORDER BY Таблица1.дата2 DESC;) AS Y
FROM Таблица1
ORDER BY Таблица1.дата1 DESC;

  Ответить  
 
 автор: Gыwи   (28.03.2007 в 14:21)   личное сообщение
 
 

или так:

SELECT TOP 1 Таб1.ПолеДата1, Таб2.ПолеДата2, Таб2.ПолеY
FROM Таб1 INNER JOIN Таб2 ON Таб1.Код1 = Таб2.Код1
ORDER BY Таб1.ПолеДата1 DESC , Таб2.ПолеДата2 DESC;

  Ответить  
 
 автор: Кукамака   (28.03.2007 в 17:17)   личное сообщение
 
 

Спасибо, я вернулясь :), буду пробовать .

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList