Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.02.2009, 09:46   #1
Tanusha
Пользователь
 
Регистрация: 18.07.2008
Сообщений: 21
По умолчанию insert и update

Есть таблицы obor (оборудование с полями clients_id, и.др.), tariff (тарифы поля: clients_id, predel, sum_rub, sum_$),
данные в таблице тарифов обновляются
с одного клиента переносятся на другого.
При апдейте происходит полностью замена всех параметров, а нужно же чтобы данные оставались
и на одном и на другом клиенте, я добавила insert,
но такая конструкция выдаёт ошибку некоректный синтаксис @client_id_st'
Подскажите как правильно писать запрос где одновременно выполняется insert и update??

declare
@client_id_st integer
@client_id_new integer,
@predel integer,
@sum_rub numeric (18,3),
@sum_$ numeric (18,4)

set @client_id_st = 12
set @client_id_new = 13

begin
insert into tariff
(
client_id_st,
predel,
sum_rub,
sum_$
)

values
(
@client_id_st,
@predel,
@sum_rub,
@sum_$
)
end

update obor
set clients_id = @client_id_st
where clients_id = @client_id_new
Tanusha вне форума Ответить с цитированием
Старый 09.02.2009, 10:56   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
При апдейте происходит полностью замена всех параметров
Почему?
Цитата:
некоректный синтаксис
Запятую в конце забыла.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 11.02.2009, 11:15   #3
Tanusha
Пользователь
 
Регистрация: 18.07.2008
Сообщений: 21
По умолчанию

Cпасибо исправила, я от запроса добиваюсь, чтобы значения (predel,sum_rub,sum_$, ext) хранящиеся на одном @client_id_st вставились в другой @client_id_new и при этом объединить всё это "чудо" с апдейтом. Новый вариант тоже не прокатил...Уменя сам insert не рабоает. подскажите, Буду очень благодарна!!
Код:
declare
@client_id_st int
@client_id_new int
@predel decimal (18,0)
@sum_rub numeric (18,3)
@sum_$ numeric (18,4)
@ext int

set @client_id_st = 11 -- клиент с которого переносятся параметры
set @client_id_new = 12 -- на который переносятся

select @ext = tt.exc
from tariff tt
where clients_new = @client_id_st

insert into tariff
(
clients_id,
predel,
sum_rub,
sum_$,
ext
)

values
( @client_id_t,
@predel,
@sum_rub,
@sum_$,
@ext
)

update obor
set clients_id = @client_id_st
where clients_id = @client_id_new

Последний раз редактировалось Stilet; 13.03.2009 в 15:06.
Tanusha вне форума Ответить с цитированием
Старый 12.03.2009, 19:04   #4
soleil@mmc
SQL-коддинг
Участник клуба
 
Регистрация: 16.01.2009
Сообщений: 1,192
По умолчанию

а откуда берутся значения этих полей?

@predel decimal (18,0)
@sum_rub numeric (18,3)
@sum_$ numeric (18,4)

откуда там возьмется это значение если строка еще не вставлена?
select @ext = tt.exc
from tariff tt
where clients_new = @client_id_st

почему здесь такой параметр?
values
( @client_id_t,
soleil@mmc вне форума Ответить с цитированием
Старый 13.03.2009, 14:47   #5
Tanusha
Пользователь
 
Регистрация: 18.07.2008
Сообщений: 21
По умолчанию

Ты прав конечно, я поправила всё, добавила
select
@sum_rub = ct.sum_rub,
......
from tariff
where clients_new = @client_id_st
Спасибо!!
Tanusha вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Update данных KiSH333 БД в Delphi 2 01.12.2008 13:28
Install (Update program) MAcK Общие вопросы .NET 0 23.10.2008 11:00
c# and Access - update MAcK Общие вопросы .NET 3 20.10.2008 12:58
не работает UPDATE chekanoff БД в Delphi 1 27.02.2008 21:57
UPDATE и DELETE Дамир БД в Delphi 3 13.03.2007 01:44