|
First и Last в запросе по запросу
|
|||
---|---|---|---|
#18+
Есть 2 хранимых запроса 1. Q1: Код: vbnet 1.
fDateTime– дата и время. Возвращает все как положено и данные и сортировку 2. Q2: Код: vbnet 1.
First и Last возвращают не то, что должны (т.е. не то что видно по результатам запроса Q1). И очень похоже, что убирая сортировку в Q1, в Q2 я получаю тот же резутьтат. Как такое может быть? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.07.2018, 11:42 |
|
First и Last в запросе по запросу
|
|||
---|---|---|---|
#18+
MikeLedFirst и Last возвращают не то, что должны (т.е. не то что видно по результатам запроса Q1).Правильно. Q2 имеет собственную сортировку, и именно согласно ей и будут выбираться First/Last значения. И в данном конкретном случае сортировка в Q1 вообще лишняя - она будет проигнорирована (и, возможно, вообще не будет выполняться, поскольку будет вырезана построителем плана выполнения) в Q2. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.07.2018, 11:53 |
|
First и Last в запросе по запросу
|
|||
---|---|---|---|
#18+
Akina, Получается, что нужный результат я могу получить только создав временную таблицу? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.07.2018, 11:56 |
|
First и Last в запросе по запросу
|
|||
---|---|---|---|
#18+
Никто не знает, что есть для Вас "нужный результат". Вы лучше сформулируйте задачу, а не то, как Вы хотели бы её решать. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.07.2018, 12:56 |
|
First и Last в запросе по запросу
|
|||
---|---|---|---|
#18+
MikeLedAkina, Получается, что нужный результат я могу получить только создав временную таблицу? Аа что такое FCODE я бы подумала, что счетчик Код: sql 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
16.07.2018, 13:04 |
|
First и Last в запросе по запросу
|
|||
---|---|---|---|
#18+
MikeLed, стесняюсь спросить-а какой именно (нельзя получить два результата в одном запросе)результат Вы хотите получить,зачем нужен первый запрос? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.07.2018, 13:05 |
|
First и Last в запросе по запросу
|
|||
---|---|---|---|
#18+
Народ! Скажите,если в запросе не задана сортировка, всегда-ли(по умолчанию)происходит сортировка по GROUP BY? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.07.2018, 13:16 |
|
First и Last в запросе по запросу
|
|||
---|---|---|---|
#18+
MikeLed...Есть 2 хранимых запроса 1. Q1: ... Да что бы ваших детей так в детском саду и школе называли - Р1 и Р2 ... ( Ребёнок1, Ребенок2... ), как вы безлично обзываете свои детища во время творения запросов. Пацифист-Пофигист наверное , ибо в армию идти не хочет. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.07.2018, 13:34 |
|
First и Last в запросе по запросу
|
|||
---|---|---|---|
#18+
sdkuесли в запросе не задана сортировка, всегда-ли(по умолчанию)происходит сортировка по GROUP BY?Нет, это не MySQL... ... |
|||
:
Нравится:
Не нравится:
|
|||
16.07.2018, 14:23 |
|
First и Last в запросе по запросу
|
|||
---|---|---|---|
#18+
Я понял так:Вы хотите для каждой группы видеть первую и последнюю запись в группе Это решается подчиненным запросом (почитайте HTLP)-примерно так: создаете запрос(это,как понял,затруднений не вызывает) в котором отображаете первую запись в группе+вычисляемое поле с подчиненным запросом (примерно такой): (SELECT TOP 1 нужноеВамПоле FROM таблица AS t1 WHERE таблица.полеПоКоторомуГруппируетеВглавномЗапросе=t1.этоЖеПоле GROUP BY нужноеВамПоле ORDER BY ОноЖе DESC) в строке групповых операций выбираете: "выражение" ... |
|||
:
Нравится:
Не нравится:
|
|||
16.07.2018, 15:00 |
|
First и Last в запросе по запросу
|
|||
---|---|---|---|
#18+
sdku, очепятка: HELP а не HTLP ... |
|||
:
Нравится:
Не нравится:
|
|||
16.07.2018, 15:03 |
|
First и Last в запросе по запросу
|
|||
---|---|---|---|
#18+
ПЕНСИОНЕРКА, Нет не счетчик - некий объединяющий код, полученный в результате ряда операций по определенной логике. sdku , Первый запрос - это отсортированный список Второй группирование, в котором хочется видеть и первое занчение поля f1 и последнее значение поля f2 sdku Я хочу видеть записи группы со значениями первой записи в одно поле и последней записи в другом поле Формально видеть надо список групп и список записей в группе (подч. форма или подтаблица) Думал, что используя отсортированный данные в запросе Q1, как источник для запроса Q2. получу желаемое. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.07.2018, 15:29 |
|
First и Last в запросе по запросу
|
|||
---|---|---|---|
#18+
MikeLed, ... |
|||
:
Нравится:
Не нравится:
|
|||
16.07.2018, 16:35 |
|
First и Last в запросе по запросу
|
|||
---|---|---|---|
#18+
sdku, По такому примеру вопросов нет. Но в запросе сортировка д.б. по другому полю (не first), т.е. еще один подзапрос. И сколько такой запрос ( 3 в одном) на 200000 записей будет выполняться? Я поня, что first и lаst в запросах, где источником является друго запрос надо использовать с осторожностью, если вообще стоит это делать :)/ ... |
|||
:
Нравится:
Не нравится:
|
|||
17.07.2018, 11:14 |
|
First и Last в запросе по запросу
|
|||
---|---|---|---|
#18+
Можно попробовать так: Сначала создать запрос вида Код: sql 1.
А затем строите еще один на этом запросе и двух экземплярах таблицы, связанных с запросом LEFT JOIN по паре полей fCode, DateMin первый экземпляр и fCode, DateMax - второй. Если результат устраивает, то всё можно собрать в одном запросе. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.07.2018, 12:29 |
|
First и Last в запросе по запросу
|
|||
---|---|---|---|
#18+
MikeLedsdku, По такому примеру вопросов нет. Но в запросе сортировка д.б. по другому полю (не first), т.е. еще один подзапрос. И сколько такой запрос ( 3 в одном) на 200000 записей будет выполняться? Я поня, что first и lаst в запросах, где источником является друго запрос надо использовать с осторожностью, если вообще стоит это делать :)/Вы бы выложили БД с четким объяснением Ваших "хотелок" и получили бы конкретный ответ-заниматься "вангованием" нет желания. (хоча глянуть схему БД) ... |
|||
:
Нравится:
Не нравится:
|
|||
17.07.2018, 13:29 |
|
First и Last в запросе по запросу
|
|||
---|---|---|---|
#18+
sdku, Кривцов Анатолий . В принципе ответ на свой вопрос я получил от Akina, за что и спасибо. Я просто повторю то, как он звучал: "First и Last возвращают не то, что должны (т.е. не то что видно по результатам запроса Q1). И очень похоже, что убирая сортировку в Q1, в Q2 я получаю тот же резутьтат. Как такое может быть? " Но постепенно свалились в решение задачи. Min/Max меня бы спас, но не для этих полей. Я уже неоднократно убеждался, что в некоторых случаях запрос в запросе в разы медленнее, чем использование временной таблицы. Тем более если база расположена на сетевом ресурсе. Получается, что по сети я гоню данные один раз, а не три или больше (от количества запросов) и далее локально работаю с меньшим объемом. Поэтому первый запрос будет INSERT во вр. табл. T1, а второй будет брать данные из T1. И все получается так, как надо. Всем спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.07.2018, 08:12 |
|
|
start [/forum/topic.php?fid=45&msg=39674424&tid=1611308]: |
0ms |
get settings: |
7ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
55ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 147ms |
0 / 0 |