powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / замена значений логическим условием по группам в sql
1 сообщений из 1, страница 1 из 1
замена значений логическим условием по группам в sql
    #39727583
Kontox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите, вот данные
Код: 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.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
create table chec 
(
shop_code nvarchar(10),
product_id int,
doc_date datetime,
ship_count int,
mark_1 int,
outputer int,
y int

)

insert into chec values 
('00664НСК',11628,'2015-01-03 00:00:00.000',12,1,8,1),
('00664НСК',11628,'2015-01-05 00:00:00.000',7,1,8,1),
('00664НСК',11628,'2015-01-06 00:00:00.000',24,0,8,1),
('00664НСК',11628,'2015-01-07 00:00:00.000',18,1,8,1),
('00664НСК',11628,'2015-01-08 00:00:00.000',12,1,8,1),
('00664НСК',11628,'2015-01-09 00:00:00.000',18,0,8,1),
('00664НСК',11628,'2015-01-10 00:00:00.000',6,0,6,1),
('00664НСК',11628,'2015-01-11 00:00:00.000',6,1,6,1),
('00664НСК',11628,'2015-01-12 00:00:00.000',6,1,6,1),
('00664НСК',11628,'2015-01-13 00:00:00.000',18,1,12,0),
('00664НСК',11628,'2015-01-14 00:00:00.000',6,1,6,0),
('00664НСК',11628,'2015-01-15 00:00:00.000',18,1,12,0),
('00664НСК',11628,'2015-01-16 00:00:00.000',12,1,12,1),
('00664НСК',11628,'2015-01-17 00:00:00.000',18,1,12,1),
('00664НСК',11628,'2015-01-18 00:00:00.000',12,1,12,1),
('00664НСК',11628,'2015-01-19 00:00:00.000',10,1,10,0),
('00664НСК',11628,'2015-01-20 00:00:00.000',24,1,12,0),
('00664НСК',11628,'2015-01-21 00:00:00.000',6,1,6,0),
('00664НСК',11628,'2015-01-24 00:00:00.000',6,1,6,0),
('00664НСК',11628,'2015-01-25 00:00:00.000',6,0,6,0),
('00664НСК',11628,'2015-01-26 00:00:00.000',10,0,10,1),
('00664НСК',11628,'2015-01-27 00:00:00.000',6,1,6,0),
('00664НСК',11628,'2015-01-28 00:00:00.000',10,1,10,0),
('00664НСК',11628,'2015-01-29 00:00:00.000',70,0,12,1),
('00664НСК',11628,'2015-01-30 00:00:00.000',100,1,12,1)




Мне нужно соблюдать такое условие: если y = 1 и mark1 = 1, то outputer по марк1 должен быть заменен первым значением, которое идет для y = 0 и mark1 = 1 в переменной outputer.

если первое значение, которое идет для Y = 0 и mark1 = 1 в outputer, больше, чем ship_count, то надо в outputer оставить фактическое значение ship_count

Нулевую категорию марк1 для outputera, мы не трогаем.

Эта операция должна выполняться по группам ship_code + product_id

Таким образом, желаемый результат


shop_code product_id doc_date ship_count mark_1 outputer y
00664НСК 11628 03.01.2015 12 1 *12 1
00664НСК 11628 05.01.2015 7 1 *7 1
00664НСК 11628 06.01.2015 24 0 24 1
00664НСК 11628 07.01.2015 18 1 *12 1
00664НСК 11628 08.01.2015 12 1 *12 1
00664НСК 11628 09.01.2015 18 0 18 1
00664НСК 11628 10.01.2015 6 0 6 1
00664НСК 11628 11.01.2015 6 1 6 1
00664НСК 11628 12.01.2015 6 1 6 1
00664НСК 11628 13.01.2015 18 1 *12 0
00664НСК 11628 14.01.2015 6 1 6 0
00664НСК 11628 15.01.2015 18 1 12 0
00664НСК 11628 16.01.2015 12 1 *10 1
00664НСК 11628 17.01.2015 18 1 *10 1
00664НСК 11628 18.01.2015 12 1 *10 1
00664НСК 11628 19.01.2015 10 1 10 0
00664НСК 11628 20.01.2015 24 1 12 0
00664НСК 11628 21.01.2015 6 1 6 0
00664НСК 11628 24.01.2015 6 1 6 0
00664НСК 11628 25.01.2015 6 0 6 0
00664НСК 11628 26.01.2015 10 0 10 1
00664НСК 11628 27.01.2015 6 1 6 1
00664НСК 11628 28.01.2015 20 1 *12 0
00664НСК 11628 29.01.2015 70 1 12 0
00664НСК 11628 30.01.2015 100 1 12 1

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


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