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

Часовой пояс: 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 часа


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

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

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