powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Update по группе
7 сообщений из 7, страница 1 из 1
Update по группе
    #40077841
ak1906
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет! Помогите, пожалуйста, написать апдейт, чтобы он в пределах одной фамилии затирал повторяющиеся SFIO, CHARG и NSUMM_PAID.
Есть таблица:

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
TABLE
-------------------
SNUMB
SFIO
CHARG
CHARG_ID
BORDER
NSUMM_PAID
NSUMPAID_ID



Причем дубли могут быть как в CHARG, так и в NSUMM_PAID. Уникальность определяется по соответствующим ключам CHARG_ID и NSUMPAID_ID
SNUMB - уникальный ключ для одного человека. Во вложении скрины таблицы - "как есть" и желаемый результат.
Спасибо всем неравнодушным)
...
Рейтинг: 0 / 0
Update по группе
    #40077843
ak1906
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
.
...
Рейтинг: 0 / 0
Update по группе
    #40077844
ak1906
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Прошу прощения, желаемый результат должен выглядеть так
...
Рейтинг: 0 / 0
Update по группе
    #40077849
Фотография Vadim Lejnin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
меня терзают смутные сомненья, что Вам нужно совсем другое.
Вы не пытаетесь базой данных решить задачи отчетной системы?

например для SQL*PLUS:
Suppressing Duplicate Values in Break Columns

excel тоже умеет что-то подобное

Но если очень нужно извратиться, то
How do you suppress or hide duplicate values in SQL?


памятка:
HOWTO :: Как правильно задавать вопросы
Как мне оформить свое сообщение?
Студентам, желающим помощи

1) Полная постановка задачи (без сокращений)
2) Подготовьте тестовые данные, лучше в виде with
например (не ваш случай):

Код: plsql
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.
39.
-- table 1 with column list
with user_tab(user_id,user_name,registry_date) as (
select 1,'Bob',to_date('11.02.1921 23:04:44','DD.MM.YYYY HH24:MI:SS') from dual union all
select 2,'Max',to_date('11.02.1922 23:04:44','DD.MM.YYYY HH24:MI:SS') from dual union all
select 3,'Jon',to_date('11.02.1923 23:04:44','DD.MM.YYYY HH24:MI:SS') from dual
)
-- table 2 with column list
,user_post(post_id,user_id,parent_post_id,post_date,message) as (
select 100,1,null,to_date('11.02.1923 23:04:00','DD.MM.YYYY HH24:MI:SS'),'Hi' from dual union all
select 101,2,100,to_date('11.02.1923 23:05:23','DD.MM.YYYY HH24:MI:SS'),'Hi' from dual union all
select 102,3,100,to_date('11.02.1923 23:05:35','DD.MM.YYYY HH24:MI:SS'),'Hi' from dual union all
select 103,1,102,to_date('11.02.1923 23:06:00','DD.MM.YYYY HH24:MI:SS'),'How are you' from dual union all
select 104,2,102,to_date('11.02.1923 23:07:05','DD.MM.YYYY HH24:MI:SS'),'All right!' from dual union all
select 105,1,101,to_date('11.02.1923 23:06:21','DD.MM.YYYY HH24:MI:SS'),'Bye' from dual union all
select 106,1,104,to_date('11.02.1923 23:04:37','DD.MM.YYYY HH24:MI:SS'),'Bye' from dual union all
select 107,2,null,to_date('11.02.1923 23:08:56','DD.MM.YYYY HH24:MI:SS'),'Hmm' from dual
)
select
rpad(to_char(p.post_date,'YYYY-MM-DD HH24:MI:SS  '),20+level*2,' ')||u.user_name||': '||p.message as txt
from 
 user_post p
 join user_tab  u on ( p.user_id = u.user_id)
where p.post_date >= u.registry_date
start with p.parent_post_id is null 
connect by prior p.post_id=p.parent_post_id 
;

TXT
--------------------------------------------------------------------------------
1923-02-11 23:04:00   Bob: Hi
1923-02-11 23:05:23     Max: Hi
1923-02-11 23:06:21       Bob: Bye
1923-02-11 23:05:35     Jon: Hi
1923-02-11 23:06:00       Bob: How are you
1923-02-11 23:07:05       Max: All right!
1923-02-11 23:04:37         Bob: Bye
1923-02-11 23:08:56   Max: Hmm

8 rows selected.



3) Покажите что сделали, что получили, без сокращений. ( лучше не в виде screenshot)


4) используйте Тэги, читать код без них неудобно, правильно оформляйте сообщение
...
Рейтинг: 0 / 0
Update по группе
    #40077853
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ak1906,

мне лень набивать данные, да и не совсем понимаю что есть дубль

если у Вас не получится, наберу

пример/шаблон update

update t t1 set SFIO=null,CHARG=null
where rowid<>(select min(rowid) rw from t t2 where t2.SNUMB=t1.SNUMB and t2.CHARG_ID=t1.CHARG_ID --критерий дублей)

.....
stax
...
Рейтинг: 0 / 0
Update по группе
    #40078256
ak1906
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Vadim Lejnin, прошу прощения, что так небрежно и поспешно оформил тему, впредь буду более аккуратен.
...
Рейтинг: 0 / 0
Update по группе
    #40078258
ak1906
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Stax, кажется, очень похоже на то, что мне нужно, спасибо! Попробую, отпишусь.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Update по группе
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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