|
Получить следующее ненулевое значение MS SQL
|
|||
---|---|---|---|
#18+
Привет! Хочу разобраться вот с таким вопросом. Есть таблица: Код номенклатурыНоменклатураПр-во 1 экзПроизводствоГодМесяц00000004444Номенклатура1NULLNULL20191100000004444Номенклатура165.13500020191200000004444Номенклатура1NULLNULL2020100000004444Номенклатура1NULLNULL2020200000004444Номенклатура1NULLNULL2020300000004444Номенклатура162.3860002020400000004444Номенклатура1NULLNULL2020500000004444Номенклатура1NULLNULL20206 В колонку Пр-во 1 экз ожидаю получить значения, равные следующему NOT NULL: Код номенклатурыНоменклатураПр-во 1 экзПроизводствоГодМесяц00000004444Номенклатура165.13NULL20191100000004444Номенклатура165.13500020191200000004444Номенклатура165.13NULL2020100000004444Номенклатура165.13NULL2020200000004444Номенклатура165.13NULL2020300000004444Номенклатура162.3860002020400000004444Номенклатура162.38NULL2020500000004444Номенклатура162.38NULL20206 Или необязательно с первой строки, достаточно будет получить: Код номенклатурыНоменклатураПр-во 1 экзПроизводствоГодМесяц00000004444Номенклатура1NULLNULL20191100000004444Номенклатура165.13500020191200000004444Номенклатура165.13NULL2020100000004444Номенклатура165.13NULL2020200000004444Номенклатура165.13NULL2020300000004444Номенклатура162.3860002020400000004444Номенклатура162.38NULL2020500000004444Номенклатура162.38NULL20206 Нагуглил разные решения, в т.ч. такое, этот запрос почти подходит: Код: sql 1. 2. 3. 4. 5. 6. 7. 8.
Но так как здесь нету уникального идентификатора для каждой строки, то результат не совсем тот, который нужен: Код номенклатурыНоменклатураГодМесяцПр-во 1 экз t2Пр-во 1 экзГодМесяцПроизводствоГодМесяц00000004444Номенклатура120191265.13NULL201911NULL20191100000004444Номенклатура120191265.1365.13201912500020191200000004444Номенклатура120191265.13NULL20201NULL2020100000004444Номенклатура120191265.13NULL20202NULL2020200000004444Номенклатура120191265.13NULL20203NULL2020300000004444Номенклатура120191265.1362.382020460002020400000004444Номенклатура120191265.13NULL20205NULL2020500000004444Номенклатура120191265.13NULL20206NULL20206 Прошу подсказать. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.06.2020, 20:27 |
|
Получить следующее ненулевое значение MS SQL
|
|||
---|---|---|---|
#18+
diamondback explorer так как здесь нету уникального идентификатора для каждой строки Предполагаю, что уникальным идентификатором следует объявить набор полей (Код номенклатуры, Год, Месяц) . ... |
|||
:
Нравится:
Не нравится:
|
|||
16.06.2020, 21:55 |
|
Получить следующее ненулевое значение MS SQL
|
|||
---|---|---|---|
#18+
;with t as ( select nom, name, pr,kol,god,mes from table1 where not pr is null ) select a.nom, a.name, (select top 1 b.pr from t b where a.nom=b.nom and (b.mes+b.god*100 <=a.mes+a.god*100) order by b.mes+b.god*100 desc) , a.kol, a.god,a.mes from table1 a ... |
|||
:
Нравится:
Не нравится:
|
|||
17.06.2020, 00:10 |
|
Получить следующее ненулевое значение MS SQL
|
|||
---|---|---|---|
#18+
Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9.
... |
|||
:
Нравится:
Не нравится:
|
|||
17.06.2020, 08:10 |
|
|
start [/forum/topic.php?fid=46&msg=39969940&tid=1685985]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
188ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
others: | 15ms |
total: | 289ms |
0 / 0 |