powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Правильно указать min и max
25 сообщений из 72, страница 1 из 3
Правильно указать min и max
    #39588922
katish444
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго всем дня. Подскажите пожалуйста как правильно составить запрос, чтобы минимальные и максимальные интервалы выбирались не по всей длинне, а пока документирует один и тот же человек. Сейчас поясню. Есть длинные скважина, пока ее бурили сменилось 3 смены, документировали ее несколько людей. Например, от 0 до 8 метров Петров, от 8 до 100 Сидоров, от 100 до 200 снова Петров и от 200 до 300 снова Сидоров. Когда просто использую min/max, то берет все по макисимуму, типо от 0 до 200 Петров. А мне надо чтобы было видно кто за какой интервал отвечает.

declare @t table (holeid varchar, from int, to int, name varchar, value varchar );
insert into @t values
( 'hr-1', 0, 8, 'Lith_LoggedBy', 'Петров' )
, ( 'hr-1', 8, 100, 'Lith_LoggedBy', 'Сидоров' )
, ( 'hr-1', 100, 200, 'Lith_LoggedBy', 'Петров' )
, ( 'hr-1', 200, 300, 'Lith_LoggedBy', 'Сидоров' )

Мой запрос таков
select holeid, min(geolfrom)minFROM, max(GEOLTO)maxTO, name, value from TABLE
where name = 'Lith_LoggedBy' and holeid = 'hr-1' group by holeid, name, value order by minFROM
...
Рейтинг: 0 / 0
Правильно указать min и max
    #39588924
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
katish444,

MAX(value) OVER (PARTTION BY value)
...
Рейтинг: 0 / 0
Правильно указать min и max
    #39588928
katish444
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
TaPaK, спасибо большое, а это куда вставить?
...
Рейтинг: 0 / 0
Правильно указать min и max
    #39588930
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
katish444,
ох... ну как-то так
Код: sql
1.
2.
select holeid, min(geolfrom)minFROM OVER (PARTTION BY value) max(GEOLTO)maxTO OVER (PARTTION BY value), name, value from TABLE
where name = 'Lith_LoggedBy' and holeid = 'hr-1' 
...
Рейтинг: 0 / 0
Правильно указать min и max
    #39588933
katish444
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
TaPaK, не работает...
Incorrect syntax near the keyword 'OVER'.
...
Рейтинг: 0 / 0
Правильно указать min и max
    #39588935
katish444,

запятулю пропустил. или скуль сервер не той системы....
...
Рейтинг: 0 / 0
Правильно указать min и max
    #39588936
Kopelly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
katish444,
Тебе нужны строчки такого вида:
Протокол буренияПетров с 0 до 8 и с 100 до 200Сидоров с 8 до 100 и с 200 до 300
?

Или нужно объединение интервалов. то есть из:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
declare @t table (holeid varchar, from int, to int, name varchar, value varchar );
insert into @t values 
 ( 'hr-1', 0, 8, 'Lith_LoggedBy', 'Петров' )
, ( 'hr-1', 8, 50, 'Lith_LoggedBy', 'Сидоров' )
, ( 'hr-1', 50, 100, 'Lith_LoggedBy', 'Сидоров' )
, ( 'hr-1', 100, 150, 'Lith_LoggedBy', 'Петров' )
, ( 'hr-1', 150, 200, 'Lith_LoggedBy', 'Петров' )
, ( 'hr-1', 200, 250, 'Lith_LoggedBy', 'Сидоров' )
, ( 'hr-1', 250, 300, 'Lith_LoggedBy', 'Сидоров' )



Получить:
holeid from to name value hr-1 0 8 Lith_LoggedBy Петровhr-1 8 100 Lith_LoggedBy Сидоровhr-1 100 200 Lith_LoggedBy Петровhr-1 200 300 Lith_LoggedBy Сидоров?
...
Рейтинг: 0 / 0
Правильно указать min и max
    #39588937
TaPaKkatish444,
ох... ну как-то так
Код: sql
1.
2.
select holeid, min(geolfrom) minFROM OVER (PARTTION BY value) ,  max(GEOLTO) maxTO OVER (PARTTION BY value), name, value from TABLE
where name = 'Lith_LoggedBy' and holeid = 'hr-1' 
...
Рейтинг: 0 / 0
Правильно указать min и max
    #39588938
katish444
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый Э - Эх,
не запятые я все расставила, sql 2012
...
Рейтинг: 0 / 0
Правильно указать min и max
    #39588939
katish444,

а, опять бурение дырок?
...
Рейтинг: 0 / 0
Правильно указать min и max
    #39588941
katish444
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Kopelly,
да точно! Как вы так получили
...
Рейтинг: 0 / 0
Правильно указать min и max
    #39588942
katish444
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый Э - Эх, не дырок, а скважин глубокого бурения))))
...
Рейтинг: 0 / 0
Правильно указать min и max
    #39588943
ещё ключевое слово PARTITION указан с ошибкой
Добрый Э - ЭхTaPaKkatish444,
ох... ну как-то так
Код: sql
1.
2.
select holeid, min(geolfrom) minFROM OVER (PARTTION BY value) ,  max(GEOLTO) maxTO OVER (PARTTION BY value), name, value from TABLE
where name = 'Lith_LoggedBy' and holeid = 'hr-1' 


нужно заменить PARTTION на PARTITION
...
Рейтинг: 0 / 0
Правильно указать min и max
    #39588944
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый Э - Эх,

для сааааавсем ленивых, ещё и алиасы передвинуть
Код: sql
1.
2.
select holeid, min(geolfrom) OVER (PARTTION BY value) as minFROM,  max(GEOLTO) OVER (PARTTION BY value) as maxTO, name, value from TABLE
where name = 'Lith_LoggedBy' and holeid = 'hr-1' 
...
Рейтинг: 0 / 0
Правильно указать min и max
    #39588945
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый Э - Эх,

факир не проснулся :)
...
Рейтинг: 0 / 0
Правильно указать min и max
    #39588946
katish444Kopelly,
да точно! Как вы так получилиискать сообщения с моим участием и по ключевым словам "инвариант группы", "START_OF_GROUP" "GRP_ID"
...
Рейтинг: 0 / 0
Правильно указать min и max
    #39588947
katish444
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Kopelly, подскажите пожалуйста как у вас все получилось?
...
Рейтинг: 0 / 0
Правильно указать min и max
    #39588949
Kopelly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
katish444Kopelly,
да точно! Как вы так получили
Так в чем задача? Получить протокол из двух строк или объединить интервалы?
...
Рейтинг: 0 / 0
Правильно указать min и max
    #39588951
katish444
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Kopelly, нужно знать кто документировал интервал.
Да, объединить нужно где это возможно
...
Рейтинг: 0 / 0
Правильно указать min и max
    #39588955
katish444
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый Э - Эх,Incorrect syntax near 'PARTTION'.
блин блинский
почему у меня не выходит
...
Рейтинг: 0 / 0
Правильно указать min и max
    #39588956
xenix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
katish444,

PARTITION
...
Рейтинг: 0 / 0
Правильно указать min и max
    #39588958
katish444
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
TaPaK, мой скрипт не верен даже с вашими исправлениями - выдает не то что надо
...
Рейтинг: 0 / 0
Правильно указать min и max
    #39588960
katish444
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Kopelly,
откройте секрет, как вы получили вторую таблицу?
...
Рейтинг: 0 / 0
Правильно указать min и max
    #39588962
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
katish444TaPaK, мой скрипт не верен даже с вашими исправлениями - выдает не то что надо
он даёт то что вы просили, а то что вы не в состояние озвучить тз, это не проблема енотов
...
Рейтинг: 0 / 0
Правильно указать min и max
    #39588963
katish444
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
откройте пожалуйста секрет, как получить вторую таблицу?
Kopellykatish444,
Тебе нужны строчки такого вида:
Протокол буренияПетров с 0 до 8 и с 100 до 200Сидоров с 8 до 100 и с 200 до 300
?

Или нужно объединение интервалов. то есть из:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
declare @t table (holeid varchar, from int, to int, name varchar, value varchar );
insert into @t values 
 ( 'hr-1', 0, 8, 'Lith_LoggedBy', 'Петров' )
, ( 'hr-1', 8, 50, 'Lith_LoggedBy', 'Сидоров' )
, ( 'hr-1', 50, 100, 'Lith_LoggedBy', 'Сидоров' )
, ( 'hr-1', 100, 150, 'Lith_LoggedBy', 'Петров' )
, ( 'hr-1', 150, 200, 'Lith_LoggedBy', 'Петров' )
, ( 'hr-1', 200, 250, 'Lith_LoggedBy', 'Сидоров' )
, ( 'hr-1', 250, 300, 'Lith_LoggedBy', 'Сидоров' )



Получить:
holeid from to name value hr-1 0 8 Lith_LoggedBy Петровhr-1 8 100 Lith_LoggedBy Сидоровhr-1 100 200 Lith_LoggedBy Петровhr-1 200 300 Lith_LoggedBy Сидоров?
...
Рейтинг: 0 / 0
25 сообщений из 72, страница 1 из 3
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Правильно указать min и max
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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