Текущее время: Вт, июл 22 2025, 10:34

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 5 ] 
Автор Сообщение
 Заголовок сообщения: конструкция SQL работает не совсем корректно
СообщениеДобавлено: Вт, апр 19 2005, 12:57 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Чт, окт 14 2004, 18:02
Сообщения: 415
Откуда: из HR
Пол: Мужской
Добрый день!
Проблема в том, что данный код работает не совсем корректно:
Code:
UPDATE z9050percent CLIENT SPECIFIED
                               SET : begda = p9050-begda,
                                     endda = p9050-endda
                               WHERE pernr = p9050-pernr AND
                                     begda = zps-begda AND
                                     endda = zps-endda.

когда изменяется например поле begda или поле endda все работает, корректно апдейтится либо одно, либо другое в зависимости от изменения, но, как только изменяются одновременно оба поля, то апдейт проходит только по begda подскажите, может я вообще неправильную конструкцию написал?


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

Зарегистрирован:
Чт, сен 23 2004, 18:43
Сообщения: 1556
Откуда: Москва
Дима написал:
Добрый день!
Проблема в том, что данный код работает не совсем корректно:
Code:
UPDATE z9050percent CLIENT SPECIFIED
                               SET : begda = p9050-begda,
                                     endda = p9050-endda
                               WHERE pernr = p9050-pernr AND
                                     begda = zps-begda AND
                                     endda = zps-endda.



Как минимум, добавь уж условие по манданту, раз уж пишешь CLIENT SPECIFIED . И запятую убери после p9050-begda .

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


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, апр 19 2005, 15:38 
Модератор
Модератор
Аватара пользователя

Зарегистрирован:
Ср, авг 18 2004, 10:59
Сообщения: 754
Откуда: Moscow
Читаем хелп по update:

Do not use the colon and commas to separate chained statements, since you could change an entire database table without wanting to, if you use them wrongly.

* FALSCH * WRONG * FALSCH * WRONG * FALSCH * WRONG *
* UPDATE SCUSTOM SET: DISCOUNT = '003',
* TELEPHONE = '0621/444444'
* WHERE ID = '00017777'.

This code fragment is not a single statement that update the discount and telephone number for the customer with the customer number '00017777'. Rather, it represents two statements - the first changes the discount for all customers, while the second changes the telephone number of the customer with the customer number '00017777'.

Ы? :lol:

_________________
Фарш невозможно провернуть назад,
И мясо из котлет не восстановишь


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

Зарегистрирован:
Чт, окт 14 2004, 18:02
Сообщения: 415
Откуда: из HR
Пол: Мужской
Семен Семеныч :D самое забавное, что на каком то этапе он ругался, что нет запятой, поставил, ошибка исчезла, потом снова правил код, а дело то действительно в этом оказалось, запятая не нужна :D спасибо


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: конструкция SQL работает не совсем корректно
СообщениеДобавлено: Вт, апр 19 2005, 15:53 
Специалист
Специалист

Зарегистрирован:
Вт, авг 17 2004, 08:47
Сообщения: 222
Пол: Мужской
Дима написал:
Добрый день!
Проблема в том, что данный код работает не совсем корректно:
Code:
UPDATE z9050percent CLIENT SPECIFIED
                               SET : begda = p9050-begda,
                                     endda = p9050-endda
                               WHERE pernr = p9050-pernr AND
                                     begda = zps-begda AND
                                     endda = zps-endda.

когда изменяется например поле begda или поле endda все работает, корректно апдейтится либо одно, либо другое в зависимости от изменения, но, как только изменяются одновременно оба поля, то апдейт проходит только по begda подскажите, может я вообще неправильную конструкцию написал?


Тут нужно исходить из того что нужно сделать.

Данный апдейт делает две операции. 1. Во всей таблице z9050percent устанавливает в поле begda значение p9050-begda. 2. В таблице z9050percent устанавилвает в поле endda значение p9050-endda, для всех записей где pernr = p9050-pernr AND begda = zps-begda AND endda = zps-endda.

Если нужно чтобы апдейт прошел как одна операция, то нужно убрать ":" и ','.


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

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


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

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


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

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