powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / First и Last в запросе по запросу
17 сообщений из 17, страница 1 из 1
First и Last в запросе по запросу
    #39674422
MikeLed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть 2 хранимых запроса
1. Q1:
Код: vbnet
1.
SELECT f1, f2, fDateTime, fCode FROM t1 WHERE fCode<>"" ORDER BY fCode, fDateTime


fDateTime– дата и время.
Возвращает все как положено и данные и сортировку

2. Q2:
Код: vbnet
1.
SELECT fCode, First(f1) AS f01, Last(f2) AS f02, Count(fCode) AS [CountFR] FROM Q1 GROUP BY fCode ORDER BY fCode



First и Last возвращают не то, что должны (т.е. не то что видно по результатам запроса Q1).

И очень похоже, что убирая сортировку в Q1, в Q2 я получаю тот же резутьтат.
Как такое может быть?
...
Рейтинг: 0 / 0
First и Last в запросе по запросу
    #39674424
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MikeLedFirst и Last возвращают не то, что должны (т.е. не то что видно по результатам запроса Q1).Правильно. Q2 имеет собственную сортировку, и именно согласно ей и будут выбираться First/Last значения. И в данном конкретном случае сортировка в Q1 вообще лишняя - она будет проигнорирована (и, возможно, вообще не будет выполняться, поскольку будет вырезана построителем плана выполнения) в Q2.
...
Рейтинг: 0 / 0
First и Last в запросе по запросу
    #39674427
MikeLed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina,

Получается, что нужный результат я могу получить только создав временную таблицу?
...
Рейтинг: 0 / 0
First и Last в запросе по запросу
    #39674455
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Никто не знает, что есть для Вас "нужный результат".

Вы лучше сформулируйте задачу, а не то, как Вы хотели бы её решать.
...
Рейтинг: 0 / 0
First и Last в запросе по запросу
    #39674457
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MikeLedAkina,

Получается, что нужный результат я могу получить только создав временную таблицу?
Аа что такое FCODE
я бы подумала, что счетчик
Код: sql
1.
2.
3.
4.
SELECT fCode,
 First(f1) AS f01, Last(f2) AS f02, Count(fCode) AS [CountFR]
 FROM Q1
 GROUP BY fCode ORDER BY fCode
...
Рейтинг: 0 / 0
First и Last в запросе по запросу
    #39674458
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MikeLed,
стесняюсь спросить-а какой именно (нельзя получить два результата в одном запросе)результат Вы хотите получить,зачем нужен первый запрос?
...
Рейтинг: 0 / 0
First и Last в запросе по запросу
    #39674460
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Народ!
Скажите,если в запросе не задана сортировка, всегда-ли(по умолчанию)происходит сортировка по GROUP BY?
...
Рейтинг: 0 / 0
First и Last в запросе по запросу
    #39674472
Фотография Лапух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MikeLed...Есть 2 хранимых запроса
1. Q1:
...
Да что бы ваших детей так в детском саду и школе называли - Р1 и Р2 ... ( Ребёнок1, Ребенок2... ), как вы безлично обзываете свои детища во время творения запросов.
Пацифист-Пофигист наверное , ибо в армию идти не хочет.
...
Рейтинг: 0 / 0
First и Last в запросе по запросу
    #39674507
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sdkuесли в запросе не задана сортировка, всегда-ли(по умолчанию)происходит сортировка по GROUP BY?Нет, это не MySQL...
...
Рейтинг: 0 / 0
First и Last в запросе по запросу
    #39674535
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я понял так:Вы хотите для каждой группы видеть первую и последнюю запись в группе
Это решается подчиненным запросом (почитайте HTLP)-примерно так:
создаете запрос(это,как понял,затруднений не вызывает) в котором отображаете первую запись в группе+вычисляемое поле с подчиненным запросом (примерно такой):
(SELECT TOP 1 нужноеВамПоле FROM таблица AS t1 WHERE таблица.полеПоКоторомуГруппируетеВглавномЗапросе=t1.этоЖеПоле GROUP BY нужноеВамПоле ORDER BY ОноЖе DESC) в строке групповых операций выбираете: "выражение"
...
Рейтинг: 0 / 0
First и Last в запросе по запросу
    #39674537
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sdku,
очепятка: HELP а не HTLP
...
Рейтинг: 0 / 0
First и Last в запросе по запросу
    #39674551
MikeLed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ПЕНСИОНЕРКА,

Нет не счетчик - некий объединяющий код, полученный в результате ряда операций по определенной логике.

sdku ,

Первый запрос - это отсортированный список
Второй группирование, в котором хочется видеть и первое занчение поля f1 и последнее значение поля f2

sdku

Я хочу видеть записи группы со значениями первой записи в одно поле и последней записи в другом поле
Формально видеть надо список групп и список записей в группе (подч. форма или подтаблица)

Думал, что используя отсортированный данные в запросе Q1, как источник для запроса Q2. получу желаемое.
...
Рейтинг: 0 / 0
First и Last в запросе по запросу
    #39674592
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MikeLed,
...
Рейтинг: 0 / 0
First и Last в запросе по запросу
    #39674899
MikeLed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sdku,

По такому примеру вопросов нет.
Но в запросе сортировка д.б. по другому полю (не first), т.е. еще один подзапрос.
И сколько такой запрос ( 3 в одном) на 200000 записей будет выполняться?

Я поня, что first и lаst в запросах, где источником является друго запрос надо использовать с осторожностью, если вообще стоит это делать :)/
...
Рейтинг: 0 / 0
First и Last в запросе по запросу
    #39674953
Можно попробовать так:
Сначала создать запрос вида
Код: sql
1.
SELECT fCode, Min(fDateTime) AS DateMin, Max(fDateTime) AS DateMax, Count(fCode) AS [CountFR] FROM t1 GROUP BY fCode

А затем строите еще один на этом запросе и двух экземплярах таблицы, связанных с запросом LEFT JOIN по паре полей fCode, DateMin первый экземпляр и fCode, DateMax - второй.

Если результат устраивает, то всё можно собрать в одном запросе.
...
Рейтинг: 0 / 0
First и Last в запросе по запросу
    #39675018
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MikeLedsdku,

По такому примеру вопросов нет.
Но в запросе сортировка д.б. по другому полю (не first), т.е. еще один подзапрос.
И сколько такой запрос ( 3 в одном) на 200000 записей будет выполняться?

Я поня, что first и lаst в запросах, где источником является друго запрос надо использовать с осторожностью, если вообще стоит это делать :)/Вы бы выложили БД с четким объяснением Ваших "хотелок" и получили бы конкретный ответ-заниматься "вангованием" нет желания.
(хоча глянуть схему БД)
...
Рейтинг: 0 / 0
First и Last в запросе по запросу
    #39675398
MikeLed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sdku, Кривцов Анатолий .

В принципе ответ на свой вопрос я получил от Akina, за что и спасибо.
Я просто повторю то, как он звучал:
"First и Last возвращают не то, что должны (т.е. не то что видно по результатам запроса Q1).
И очень похоже, что убирая сортировку в Q1, в Q2 я получаю тот же резутьтат.
Как такое может быть? "

Но постепенно свалились в решение задачи.
Min/Max меня бы спас, но не для этих полей.
Я уже неоднократно убеждался, что в некоторых случаях запрос в запросе в разы медленнее, чем использование временной таблицы.
Тем более если база расположена на сетевом ресурсе.
Получается, что по сети я гоню данные один раз, а не три или больше (от количества запросов) и далее локально работаю с меньшим объемом.
Поэтому первый запрос будет INSERT во вр. табл. T1, а второй будет брать данные из T1.
И все получается так, как надо.

Всем спасибо.
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / First и Last в запросе по запросу
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]