Подготовка дуплексных данных с использованием SQL - PullRequest
0 голосов
/ 07 января 2020

У меня есть таблица с данными, и мне нужно подготовить строки данных для двусторонней печати, используя определенные поля и переменные.

Я создал набор временных таблиц, как показано ниже:

# OriginalData :

Code Department Brand   PageNumber SequenceNo Reverse
-----------------------------------------------------
101  201        LG      1          1          0
102  201        Samsung 1          2          0
105  203        Apple   1          3          0
106  203        Nokia   1          4          0
103  202        Sony    2          5          0
104  202        Sony    2          6          0
107  203        TCL     2          7          0
108  203        BenQ    2          8          0 

# Обязательные данные :

Code Department Brand   PageNumber SequenceNo Reverse
-----------------------------------------------------
101  201        LG      1          1          0
102  201        Samsung 1          2          0
105  203        Apple   1          3          0
106  203        Nokia   1          4          0

101  201        LG      1          5          1 - Required
102  201        Samsung 1          6          1 - Required
105  203        Apple   1          7          1 - Required
106  203        Nokia   1          8          1 - Required

103  202        Sony    2          9           0
104  202        Sony    2          10          0
107  203        TCL     2          11          0
108  203        BenQ    2          12          0 

103  202        Sony    2          13          1 - Required
104  202        Sony    2          14          1 - Required
107  203        TCL     2          15          1 - Required
108  203        BenQ    2          16          1 - Required

Мне нужны данные согласно второй таблице. Я планирую использовать исходные данные для передней части страницы и использовать данные из таблицы RequireDupexData для задней части страницы.

Есть ли способ изменить порядок SequenceNo с помощью SQL? поэтому в сочетании с исходными данными они могут быть напечатаны правильно с точки зрения двусторонней печати.

Примечания:

  1. Пример 2 строки данных на странице
  2. Пример 2 столбца на странице
  3. Данные передаются в приложение, которое создает иллюстрации
  4. Те же строки данных используются для задней части страницы, поэтому и дублированные таблицы.

image

Обновление: изменил мои необходимые данные, чтобы сделать их более понятными. В моем примере я рассмотрел 2 столбца и 2 строки, но они могут меняться в зависимости от дизайна страницы / шаблона. Поэтому я считаю, что столбцы или строки, или оба должны учитываться для изменения порядка следования номеров для требуемых данных.

1 Ответ

0 голосов
/ 07 января 2020

Я думаю, что это сработает, чтобы изменить ваш порядковый номер

--drop table #temp
create table #temp(
seq int,
)
insert into #temp
values (1),(2),(3),(4),(5),(6),(7),(8),(9),(10),(11),(12),(13),(14)

declare @third int;
set @third = ceiling((select count(seq)/3.0 from #temp))
select @third

select seq 
, case when seq <= @third
then seq + 2*@third
when seq <= 2*@third
then seq
when seq > 2*@third
then seq - 2*@third
end as rseq
from #temp 
order by seq asc
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...