Форум программистов, компьютерный форум, киберфорум
Наши страницы
Microsoft SQL Server
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.94/16: Рейтинг темы: голосов - 16, средняя оценка - 4.94
eva_yk
1

Замена записей в таблице

25.01.2012, 10:34. Просмотров 2925. Ответов 6
Метки нет (Все метки)

Помогите пожалуйста!
Как из одной таблицы сначала выбрать записи по
равенству записей полей, разнится лишь поле "месяц",
потом в этих записях сделать замену, например:
в 1 месяц в поле1 вставить запись поля2 из 2 месяца,
во 2 месяц в поле1 вставить запись поля2 из 3 месяца и т.д.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.01.2012, 10:34
Ответы с готовыми решениями:

замена записей в таблице
Помогите плиз! Есть таблица: (ТТ(id торговой точки) , А(id агента), дата...

Замена значений в таблице
Добрый день! В таблице имеются поля DateCreate типа DateTime и DateOfIssue...

Алгоритм обхода подчиненных записей в таблице
Необходима помощь в поиске алгоритма прохода по записям в таблице. Есть...

Объединение записей в таблице с конкатенацией строк
Подскажите пожалуйста как из такой таблицы: Номер Склад 501 1 502 ...

Запрос с выборкой повторяющихся записей в таблице
Всем доброго времени суток, нежна помощь знатоков, создал запрос select...

6
bazile
65 / 41 / 68
Регистрация: 15.03.2007
Сообщений: 6,909
25.01.2012, 10:56 2
Вопрос непонятен. Уточни его, пожалуйста. Интересует структура таблицы и пример того как должны измениться данные. То есть были такие такие строки, а стали вот такие.
0
eva_yk
26.01.2012, 06:30 3
Сейчас немного переделала таблицу, но вопрос остался.
Структура такая: pole1, pole2, mes, period, zn
Выбираю в новую таблицу записи с периодом 102 за 2 месяц,
обновляю в новой таблице "period" - 102 на 101,
а в "mes" - 2 на 1.
Затем в первой таблице нужно удалить записи с периодом
101 и месяцем 1, чтобы вставить записи из новой.
Как это сделать? Или может как-то заменить записи без
создания промежуточной таблицы? Этот запрос
возможно ли сделать универсальным для всего
года, впрочем меняются только данные
за предыдущий месяц.
vpanasenko
1 / 1 / 7
Регистрация: 28.06.2011
Сообщений: 342
26.01.2012, 10:42 4
Цитата Сообщение от eva_yk
Сейчас немного переделала таблицу, но вопрос остался.
Структура такая: pole1, pole2, mes, period, zn
Выбираю в новую таблицу записи с периодом 102 за 2 месяц,
обновляю в новой таблице "period" - 102 на 101,
а в "mes" - 2 на 1.
Затем в первой таблице нужно удалить записи с периодом
101 и месяцем 1, чтобы вставить записи из новой.
Как это сделать? Или может как-то заменить записи без
создания промежуточной таблицы? Этот запрос
возможно ли сделать универсальным для всего
года, впрочем меняются только данные
за предыдущий месяц.
а если так:
delete from tablename
where period=101 and mes=1
go
update tablename
set period=101, mes=1
where period=102 and mes=2
go
0
eva_yk
29.01.2012, 04:11 5
Спасибо нормально прошло, но при этом исчезли записи
по 2 месяцу, немного оптимизировала и получила следующее:
T-SQL
1
2
3
4
5
6
7
8
9
10
11
SELECT  *
INTO tab1
FROM fd_1001
WHERE (усл1) And (усл2) And (mes=2) And (period=102)
UPDATE tab1 SET mes = mes-1, period = 101
DELETE  FROM  fd_1001
WHERE (усл1) And (усл2) And (mes=1) And (period=101)
INSERT INTO fd_1001 
SELECT *
FROM tab1
DROP TABLE  tab1;
А возможно ли избежать промежуточной tab1?
vpanasenko
1 / 1 / 7
Регистрация: 28.06.2011
Сообщений: 342
29.01.2012, 13:29 6
Я в MS SQL нулевой.. Из познаний: может, переменные временные применить ? Или написать ХП и уже ее с соответсвующими параметрами исполнять ?
0
vpanasenko
1 / 1 / 7
Регистрация: 28.06.2011
Сообщений: 342
29.01.2012, 15:04 7
Если честно, я так и не понял, зачем такие телодвижения ?
если так ?
insert into fd_1001
(field1, field2,...,fieldN, period, mes)
select field1, field2,...,fieldN, period-1, mes-1 from
fd_1001
where mes=2 and period=102..
А там - кто его знает, что есть на самомо деле.. Тут вопрос, как поступить с PERIOD=101 и MES=1
0
29.01.2012, 15:04
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.01.2012, 15:04

Запрос: просуммировать количество определенных записей в таблице
Добрый день, подскажите советом пожалуйста! Пытаюсь просуммировать количество...

Выборка записей которые не хранятся во второй таблице
Есть таблицы А и В, связанные связью 1-много. Как вывести записи из таблицы...

Как правильно периодически проверять наличие новых записей в таблице
Есть windows сервис который постоянно следит за таблицей в базе, если появились...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru