powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Помогите с ЗАПРОСОМ
7 сообщений из 7, страница 1 из 1
Помогите с ЗАПРОСОМ
    #33801394
Помогите, пожалуйста, с запросом в следующем примере
Таблица:
Дата Количество Участок
09.06.06 25 11
10.06.06 5 10
10.06.06 7 11
10.06.06 10 11
11.06.06 1 10
11.06.06 4 11
12.06.06 20 12
12.06.06 15 11
12.06.06 20 12
12.06.06 30 10
13.06.06 40 11
Задача: получить разность максимальных значений поля 'Количество', сгруппированных по полю 'Дата'.
В результате следующего запроса:
SELECT Дата,MAX(Количество) AS Result FROM Таблица
WHERE
Участок BETWEEN 11 AND 11
AND
Дата BETWEEN Cdate('10.06.06') AND Cdate('12.06.06')
GROUP BY Дата
получается:
Дата Result
10.06.06 10
11.06.06 4
12.06.06 15
Но это мало. Нужно получить разность максимумов, т.е 15-10=5.
Помогите, кто сможет
...
Рейтинг: 0 / 0
Помогите с ЗАПРОСОМ
    #33801435
TIKO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Разность общего максимума по отнощению к строкам сгруппированным максимумо по дате
т.е. новое поле
10.06.06 10 (15-10=5)
11.06.06 4 (15-4=11)
12.06.06 15 (15-15=0)
так или нет ?
...
Рейтинг: 0 / 0
Помогите с ЗАПРОСОМ
    #33801499
Извини, я немного не понял вопроса, поэтому, попробую объяснить по другому.
В данном примере, исходя из запроса, получилось новое поле 'Result', в котором 10 это максимальное за 10.06.06; 4 это максимальное за 10.06.06; 15 это максимальное за 10.06.06. Поскольку поиск групповой, то и выдало по каждому максимальному значению в своей группе - 'Дата'. Но мне не нужны три максимальных значения (как у меня получилось), а одно, которое будет разностью ЭТИХ ПОЛУЧЕННЫХ максимальных значений (15-10=5) за первое число (в данном примере 10.06.06) и последним числом (в данном примере 12.06.06). Если бы в запросе, допустим, было не Дата BETWEEN Cdate('10.06.06') AND Cdate('12.06.06'), а Дата BETWEEN Cdate('10.06.06') AND Cdate('13.06.06'), то получилось бы
Дата Result
10.06.06 10
11.06.06 4
12.06.06 15
13.06.06 40
и разность максимальных значений 40-10=30
Получается, что нужно найти как бы результат от результата. Возможно это можно сделать с помощью подзапроса.
P.S. TIKO, прошу прощения, если пытался что-то типа разжевывать, я уверен, что Вам можно было проще объяснить, но может быть другим тоже было не понятен вопрос.
...
Рейтинг: 0 / 0
Помогите с ЗАПРОСОМ
    #33801548
Ashton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну ты хоть напиши, как должен выглядить рещультат.

Так?

Код: plaintext
1.
2.
10.06.06 30
11.06.06 4 
12.06.06 15

Или так?

Код: plaintext
10.06.06 30
...
Рейтинг: 0 / 0
Помогите с ЗАПРОСОМ
    #33801649
TIKO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
запрос в запросе можно использовать
select t, (select max(t2) from table where id=1)
from table

так же можно подзапрос вставить в кретерии
where t2=(select max(t2) from table)
но если подзапрос воздвращает одну запись
таже можно вставить дополнительный оператор критерия
having max(t2)>1 после оператора груп
так же пожно присоеденить два запроса с помощью оператора
UNION
select 1,2,2 from 4
UNION
select 1,2,2 from 5
но столбцы колонок должны быть одинакового количества

PS
само решение нет в вопросе, пробуй сам
или выложи базу и желаемый результат будет время попробую помочь
...
Рейтинг: 0 / 0
Помогите с ЗАПРОСОМ
    #33801657
TIKO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
TIKOзапрос в запросе можно использовать
select t, (select max(t2) from table where id=1)
from table

так же можно подзапрос вставить в кретерии
where t2=(select max(t2) from table)
но если подзапрос воздвращает одну запись
таже можно вставить дополнительный оператор критерия
having max(t2)>1 после оператора груп
так же пожно присоеденить два запроса с помощью оператора
UNION
select 1,2,2 from 4
UNION
select 1,2,2 from 5
но столбцы колонок должны быть одинакового количества

PS
само решение нет в вопросе, пробуй сам
или выложи базу и желаемый результат будет время попробую помочь

само решение нет в запросе , пробуй сам
или выложи базу и желаемый результат будет время попробую помочь
...
Рейтинг: 0 / 0
Помогите с ЗАПРОСОМ
    #33803007
AshtonНу ты хоть напиши, как должен выглядить рещультат.

Так?

Код: plaintext
1.
2.
10.06.06 30
11.06.06 4 
12.06.06 15

Или так?

Код: plaintext
10.06.06 30


Это должно выглядеть как во втором случае - ОДИН результат
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Помогите с ЗАПРОСОМ
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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