Форум программистов, компьютерный форум, киберфорум
Наши страницы
MS Access
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
Munchaa
0 / 0 / 0
Регистрация: 07.12.2011
Сообщений: 33
1

Последнее поле соотв. максимальной дате

05.07.2013, 11:46. Просмотров 986. Ответов 7
Метки нет (Все метки)

Здравствуйте, уважаемые.

Очень нужно решить поставленную задачу, которая сейчас работает, но не так ка надо.

Есть две таблицы: фирмы и примечания.
В первой - ид фирмы, названия фирмы и так далее
Во второй - примечания к фирмам и дата примечаний.

То есть, у одной фирмы может быть несколько примечаний.

Нужно в запросе сопоставить всем фирмам последние примечания (то есть дата последнего примечания максимальная).

Используется сейчас такой запрос:

SQL
1
2
3
4
SELECT Firma.Firma, Firma.Strana, Firma.Gorod, LAST(Prim.Prim) AS [Last_ Prim], MAX(Prim.Data) AS [Last_ DATA]
FROM Firma, Prim
WHERE Firma.ID = Prim.ID_F
GROUP BY Firma.Firma, Firma.Strana, Firma.Gorod;
Максимальная дата определяется корректно, но примечание приписывается не всегда последнее, а как повезет. Да, знаю что во всем виновата функция Last, поэтому и прошу помощи.

Как переделать запрос, чтобы все работало корректно? Буду очень признателен за помощь.

П.С. поле Prim.Prim - Memo
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.07.2013, 11:46
Ответы с готовыми решениями:

Выбор значения по максимальной дате
Добрый день! Помогите, пожалуйста, написать функцию DLookup. Есть таблица Оклады с полями: -...

Выборка строк по максимальной дате из нескольких таблиц
Здравствуйте! Помогите пожалуйста! Есть три таблицы Имущ (список имущества), СоотвРаспол...

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

Вывод и фильтрация значений по максимальной дате внутри одной таблицы
Добрый вечер! Столкнулся с проблемой. Есть задача выводить статусы изменений по движению...

Вычисляемое поле со значениями по дате
Есть таблица, даны 3 поля: Imya, Chislo, Data. Данные поступают нарастающим итогом: 01.01.1990...

7
mobile
Эксперт MS Access
23723 / 13279 / 2804
Регистрация: 28.04.2012
Сообщений: 14,542
05.07.2013, 12:06 2
SQL
1
2
3
4
5
6
7
SELECT FIRST(Firma.Firma) AS Фирма, 
  Firma.Strana, 
  Firma.Gorod, 
  MAX(Prim.DATA) AS [Last_ DATA]
  dlookup("Prim", "Prim", "DATA=" & [Last_ DATA] & " and ID=" & Firma.ID) AS [Last_ Prim]
FROM Firma INNER JOIN Prim ON Firma.ID = Prim.ID_F
GROUP BY Firma.ID, Firma.Strana, Firma.Gorod;
0
Munchaa
0 / 0 / 0
Регистрация: 07.12.2011
Сообщений: 33
05.07.2013, 12:14  [ТС] 3
Вроде запятая была пропущена. Поставил на место. Выборка проходит, но вместо примечания пишет #Ошибка
0
mobile
Эксперт MS Access
23723 / 13279 / 2804
Регистрация: 28.04.2012
Сообщений: 14,542
05.07.2013, 12:15 4
Запятую забыл :-)
SQL
1
2
3
4
5
6
7
SELECT FIRST(Firma.Firma) AS Фирма, 
  Firma.Strana, 
  Firma.Gorod, 
  MAX(Prim.DATA) AS [Last_ DATA],
  dlookup("Prim", "Prim", "DATA=" & [Last_ DATA] & " and ID=" & Firma.ID) AS [Last_ Prim]
FROM Firma INNER JOIN Prim ON Firma.ID = Prim.ID_F
GROUP BY Firma.ID, Firma.Strana, Firma.Gorod;
0
05.07.2013, 12:15
Munchaa
0 / 0 / 0
Регистрация: 07.12.2011
Сообщений: 33
05.07.2013, 12:18  [ТС] 5
Вот такое говорит, если кликаю на поле с ошибкой:
Последнее поле соотв. максимальной дате

В общем, ругается в каждом поле на айдишники, может из-за них ошибка?
0
mobile
Эксперт MS Access
23723 / 13279 / 2804
Регистрация: 28.04.2012
Сообщений: 14,542
05.07.2013, 12:23 6
Да, забыл совсем о датном представлении
SQL
1
2
3
4
5
6
7
SELECT FIRST(Firma.Firma) AS Фирма, 
  Firma.Strana, 
  Firma.Gorod, 
  MAX(Prim.DATA) AS [Last_ DATA],
  dlookup("Prim", "Prim", "DATA=" & Format([Last_ DATA], "\#mm\/dd\/yyyy\#") & " and ID=" & Firma.ID) AS [Last_ Prim]
FROM Firma INNER JOIN Prim ON Firma.ID = Prim.ID_F
GROUP BY Firma.ID, Firma.Strana, Firma.Gorod;
1
Munchaa
0 / 0 / 0
Регистрация: 07.12.2011
Сообщений: 33
05.07.2013, 12:42  [ТС] 7
Все ок, только вместо "ID=" & Firma.ID) AS [Last_ Prim]" надо было "ID_F=" & Firma.ID) AS [Last_ Prim]"

Огромное вам спасибо!

Добавлено через 16 минут
Еще вопрос. Ситуация такая:

В результате этой выборки получается такое:

Фирма 1, Марка 1, Марка 2, Примечание, Дата
Фирма 1, Марка 3, Марка 4, Примечание, Дата

Можно как-то все марки объединить в одно поле и вывести все 1 строкой, то есть, чтобы получилось:

Фирма 1, Марка 1 + марка 2 + марка 3 + марка 4, Примечание, Дата
0
mobile
Эксперт MS Access
23723 / 13279 / 2804
Регистрация: 28.04.2012
Сообщений: 14,542
05.07.2013, 13:21 8
Цитата Сообщение от Munchaa Посмотреть сообщение
В результате этой выборки получается такое:

Фирма 1, Марка 1, Марка 2, Примечание, Дата
Фирма 1, Марка 3, Марка 4, Примечание, Дата

Можно как-то все марки объединить в одно поле и вывести все 1 строкой, то есть, чтобы получилось:
Фирма 1, Марка 1 + марка 2 + марка 3 + марка 4, Примечание, Дата
Два вопроса:
1. Откуда взялись поля Марка1 и Марка2? Их не было а исходном запросе.
2. Конкатенация (слияние значений) из разных записей возможно, но для этого в общем случае нужен некий уникальный номер. Которого у вас не видно в запросе. Есть, разумеется, способы внедрить счетчик в группирующий запрос. Но запрос становится тяжелым.

Вобщем, желательно видеть структуру данных. Чтобы не гадать.
0
05.07.2013, 13:21
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.07.2013, 13:21

Нужно проверить пусто ли поле в БД ) если ДА то поставить оценку, НЕТ то вывести соотв. надпись
вот код) проблема в том что он нормально выводит сообщение если поле не пустое ) а вот если пустое...

Выборка строк по максимальной дате
Всем привет! Есть таблица вида: Широта | Долгота | Транспорт | Дата 1 | 1 | ...

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru