powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / T-SQL / MS SQL Server. Нужна помощь новичку
5 сообщений из 5, страница 1 из 1
T-SQL / MS SQL Server. Нужна помощь новичку
    #39768714
Connor_Johanson
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, помогите пожалуйста новичку в программировании.

В приложенной картинке есть 2 таблицы.

На таблице №1 изображены 3 колонки.

1. Дата
2. Колонка 1
3. Колонка 2

И они заполнены данными.

Таблица №2 дублирует таблицу №1, но данные в колонке №1 и колонке №2 имеют сдвиг.

Как показано на картинке, необходимо чтобы какой именно будет сдвиг было указано в 3ей табличке.

Таким образом этот сдвиг будет легко настраиваемым и адаптивным.

Помогите пожалуйста, как получить подобный результат в Microsoft SQL Server

Прошу прощения если объяснил запутанно или недостаточно раскрыто.

Всем заранее больше спасибо.
...
Рейтинг: 0 / 0
T-SQL / MS SQL Server. Нужна помощь новичку
    #39768730
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
row_number() для всех трех полей, после для [колонка 1] и [колонка 2] прибавить соответсвуюший сдвиг и поджоинить по резултирующему номеру.
...
Рейтинг: 0 / 0
T-SQL / MS SQL Server. Нужна помощь новичку
    #39768740
Connor_Johanson
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Гавриленко Сергей Алексеевич,

Имеешь в виду, для каждый колонки в таблице 1 сделать соответствующую колонку с ID (как в прикреплённой картинке)

А затем сделать таблицу сдвигов

А затем для таблицы №2 сделать формулу где будет сумма изначального ID строчки + значение сдвига?
...
Рейтинг: 0 / 0
T-SQL / MS SQL Server. Нужна помощь новичку
    #39768749
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
declare @t table (d date, c1 int, c2 int);

insert into @t
values
 ('20180101', 110, 106),
 ('20180201', 115, 109),
 ('20180301', 126, 118),
 ('20180401', 138, 112),
 ('20180501', 147, 127);

declare @s table (s1 int, s2 int);
insert @s
values
 (1, 2);

select * from @t order by d;

select
 t.d,
 lead(t.c1, s.s1) over (order by t.d),
 lead(t.c2, s.s2) over (order by t.d)
from
 @t t cross join
 @s s
order by
 t.d;
...
Рейтинг: 0 / 0
T-SQL / MS SQL Server. Нужна помощь новичку
    #39768810
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Connor_Johanson,

задача решается прибавлением к значениям в колонке даты первой таблицы смещения для этого года-месяца, указанного в третьей таблице. Можно использовать функцию DATEADD().
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / T-SQL / MS SQL Server. Нужна помощь новичку
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]