Текущее время: Ср, май 14 2025, 00:49

Часовой пояс: UTC + 3 часа


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 14 ] 
Автор Сообщение
 Заголовок сообщения: Помогите с кодом SQL
СообщениеДобавлено: Вт, май 17 2005, 15:29 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Пн, ноя 15 2004, 12:10
Сообщения: 473
Откуда: Казань
Помогите плиз ламеру написать простенький код.
Надо выбрать максимальные значения
поля таблицы EQUZ-AEDAT и соответсвующие EQUZ-EQUNR.

Делаю только через SQ02\01.
Те заводил 2 переменные (e и d) и в коде одной из них писал следующЕЕ:

select equnr max( aedat )
from equz
into (e,d)
group by equz~equnr.
endselect.

в sq01 Выбирается чушь какая то ....помогите плиз ...
Cпасибо.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите с кодом SQL
СообщениеДобавлено: Вт, май 17 2005, 15:36 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Ср, май 04 2005, 16:29
Сообщения: 687
Откуда: Нижневартовск->Москва
Пол: Мужской
Code:
select equnr aedat
from equz
into (e,d)
group by equnr aedat
having aedat = max( equz~aedat ).

  ...

endselect.

Это хотел?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, май 17 2005, 15:41 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Пн, ноя 15 2004, 12:10
Сообщения: 473
Откуда: Казань
Попробовал ваш код. Опять море одинаковых строк лезет :(
Почему так происходит?
может из-за переменных ?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, май 17 2005, 15:45 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Ср, май 04 2005, 16:29
Сообщения: 687
Откуда: Нижневартовск->Москва
Пол: Мужской
select distinct equnr aedat ...


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, май 17 2005, 15:55 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Пн, ноя 15 2004, 12:10
Сообщения: 473
Откуда: Казань
НЕТ
ТУТ просто вообще 1 строка повторяется несколько сот раз :(
может я переменые e и d неправильно стыкую ...?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, май 17 2005, 16:00 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Ср, май 04 2005, 16:29
Сообщения: 687
Откуда: Нижневартовск->Москва
Пол: Мужской
Слушай, ну EQUNR Вообще-то не единственное ключевое поле таблицы, так что удивляться, что оно повторяется :)

Приведи свой кусок кода побольше.. А то неясно, ты между SELECT и ENDSELECT делаешь что-то или нет


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, май 17 2005, 16:18 
Почетный гуру
Почетный гуру

Зарегистрирован:
Вт, авг 17 2004, 10:45
Сообщения: 550
Откуда: SAP_BASIS 640
Если есть полномочия, попробуйте свой код в обычной программе. По идее, код вполне рабочий и дублирования быть не должно.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, май 17 2005, 16:20 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Ср, май 04 2005, 16:29
Сообщения: 687
Откуда: Нижневартовск->Москва
Пол: Мужской
Кстати, со своим примером я явно прогнал :)
В max() указал поле из GROUP BY :D

Вообще-то твой код вполне может иметь место, просто странно, что ничего нет между SELECT ENDSELECT, а задваивания по неполному ключу - это норма..


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, май 17 2005, 16:26 
Почетный гуру
Почетный гуру

Зарегистрирован:
Вт, авг 17 2004, 10:45
Сообщения: 550
Откуда: SAP_BASIS 640
T написал:
а задваивания по неполному ключу - это норма..


Но не в случае с GROUP BY.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, май 17 2005, 16:31 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Ср, май 04 2005, 16:29
Сообщения: 687
Откуда: Нижневартовск->Москва
Пол: Мужской
EGF написал(а):
T написал:
а задваивания по неполному ключу - это норма..


Но не в случае с GROUP BY.

Согласен. Просто в моём горе-примере в group by указаны два поля.. Поэтому equnr вполне может повторяться.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, май 17 2005, 16:37 
Почетный гуру
Почетный гуру

Зарегистрирован:
Вт, авг 17 2004, 10:45
Сообщения: 550
Откуда: SAP_BASIS 640
И в Вашем примере не будет повторятся. Из всех строчек с одинаковым equnr запрос выберет по одной строке с максимальным aedat.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, май 17 2005, 16:42 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Ср, май 04 2005, 16:29
Сообщения: 687
Откуда: Нижневартовск->Москва
Пол: Мужской
EGF написал(а):
И в Вашем примере не будет повторятся. Из всех строчек с одинаковым equnr запрос выберет по одной строке с максимальным aedat.

Не согласен.
Из всех строчек с одинаковым сочетанием equnr aedat он выберет максимальный aedat (что эквивалентно отсутствию выбора)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите с кодом SQL
СообщениеДобавлено: Вт, май 17 2005, 17:07 
Председатель
Председатель
Аватара пользователя

Зарегистрирован:
Чт, сен 23 2004, 18:43
Сообщения: 1556
Откуда: Москва
Возможно, надо делать не SELECT-ENDSELECT, а SELECT INTO TABLE.
Потому как и с первоначальным вариантом должно работать.

Code:
SELECT equnr MAX( aedat ) INTO TABLE itab
  FROM equz
GROUP BY equnr .

_________________
Hе иди по течению, не иди против течения - иди поперек него, если хочешь достичь берега.
Слова Ванталы. Дела Ванталы


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, май 17 2005, 17:47 
Почетный гуру
Почетный гуру

Зарегистрирован:
Вт, авг 17 2004, 10:45
Сообщения: 550
Откуда: SAP_BASIS 640
T написал:
Из всех строчек с одинаковым сочетанием equnr aedat он выберет максимальный aedat (что эквивалентно отсутствию выбора)

Да, Вы правы.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 14 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: Ahrefs [Bot], Google [Bot]


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB