|
SIR
|
|
Получить для каждого элемента максимальную дату и цену, соответствующую этой дате22.08.2007, 19:35. Показов 2403. Ответов 11
Метки нет (Все метки)
Нужен такой хитрейший запрос:
Вот есть скажем таблица: Element DDoc Price 1 01.01.01 200 1 02.01.01 150 2 03.01.01 150 2 02.02.01 120 2 01.02.01 300 ... Вот нужно получить в результате для каждого элемента максимальную дату и цену, соответствующую этой дате! Т.е. 1 02.01.01 150 2 03.01.01 150 Ну не знаю как это сделать!!! Получается только через курсор. Спасибо. |
|
| 22.08.2007, 19:35 | |
|
Ответы с готовыми решениями:
11
Файл содержит записи о дате. Указать максимальную дату для второй половины года
|
|
0 / 0 / 1
Регистрация: 22.07.2007
Сообщений: 260
|
||||||
| 22.08.2007, 20:06 | ||||||
0
|
||||||
|
AiK
|
||||||
| 22.08.2007, 20:26 | ||||||
|
Элементарно, Ватсон!
![]() To Admin: положи этот пример в самплесы - это довольно распространённый вопрос у начинающих, я на него уже раз в пятый на разных форумах отвечаю
|
||||||
|
0 / 0 / 2
Регистрация: 17.08.2007
Сообщений: 222
|
||||||
| 23.08.2007, 10:59 | ||||||
|
Можешь поупражняться с иннер-джойном:
0
|
||||||
|
0 / 0 / 1
Регистрация: 22.07.2007
Сообщений: 260
|
|
| 23.08.2007, 11:03 | |
|
Вопрос был не совсем элементарный, дело в том что первый вариант для каждого документа возвращает только одну строку с максимальной датой и максимальной ценой для этой даты, а второй вернет все варианты цены на максимальную дату для каждого документа. Конечно, все зависит от сути задачи.
0
|
|
|
AiK
|
||||||
| 23.08.2007, 11:47 | ||||||
|
to AndreP:
Согласен, не подумал о возможности наличия у одного элемента двух дат. Только мне кажется что такой вариант:
И ещё вопросик: я никогда не работал с подселектами, к которым потом обращаются как к таблице. IMHO, это творчество мелкомягких. Итак вопрос: насколько эта конструкция пробивается оптимизатором? Есть подозрения большие, что m - неявная временная (рабочая)таблица, которая не содержит индексов, соответственно на больших таблицах это чревато... |
||||||
|
SIR
|
|
| 23.08.2007, 11:55 | |
|
Согласитесь,что задача элементарная. Вот я и думаю, господа, когда присылаете ответы и называете 'начинающим' сами посмотрите результаты своих решений.
А на счет сути задачи, то я свел довольно сложную задачу и очень специфическую задачу (складской учет) к такой 'простенькой' задачке. На счет варианта решения я делаю так. Беру и делаю курсор, где сортирую по дате, а потом прото выбираю первую строку, удовлетворяющую моей задаче. |
|
|
0 / 0 / 1
Регистрация: 22.07.2007
Сообщений: 260
|
|
| 23.08.2007, 12:18 | |
|
to Aik:
Подзапрос стандартное решение для Oracle и MS SQL, хотя мне больше нравиться использование View. По оптимизации и быстродействию эти варианты должны быть одинаковы, в обоих случаях создается виртуальная таблица. to SIR: Я проверял свой вариант, да и второй будет работать. А вариант с курсором, несомненно, будет работать в несколько раз медленнее, если только в таблице достаточно много записей и это можно заметить :-)
0
|
|
|
AiK
|
|
| 23.08.2007, 14:41 | |
|
To AndreP:
довольно любопытно: твой вариант на таблице без индексов работает раза в полтора быстрее, с индексом оба варианта работают одинаково. |
|
|
0 / 0 / 1
Регистрация: 22.07.2007
Сообщений: 260
|
|
| 23.08.2007, 17:22 | |
|
Уточнение to AiK:
Когда я сравнивал быстродействие, то имел в виду вариант с подзапросом и с View, оно приблизительно одинаково. Что касается разницы в быстродействии вариантов с подзапросом в условии From и в условии Where, то, по видимому, в первом случае подзапрос выполняется сразу по всем документам, а во втором отдельно по каждому. Поэтому без индекса первый вариант выполняется существенно быстрее, а с индексом разница мала.
0
|
|
|
SIR
|
|
| 26.08.2007, 11:19 | |
|
Спасибо, все работает !!!
|
|
|
SIR
|
|
| 26.08.2007, 14:08 | |
|
Кстати, я подумал, а что если есть скажем еще одна дата документа, назовем ее DDoc2, и нужно сделать выборку, где DDoc - максимальна, а DDoc2 - минимальна.
Я пока решения не нашел. P.S. Это просто задачка для тренировки. Спасибо всем!!! |
|
| 26.08.2007, 14:08 | |
|
Помогаю со студенческими работами здесь
12
Получить цену номенклатуры в определенную дату При наличии номера недели получить дату начала и дату окончания этой недели Даны два целых числа: D (день) и M (месяц), определяющие правильную дату. Вывести знак Зодиака, соответствующий этой дате
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
Символьное дифференцирование
igorrr37 13.02.2026
/ *
Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет
значение производной при заданном х
Логарифм записывается как: (x-2)log(x^2+2) -. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога
Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
|
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
|