powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Очистка повторяющихся значений в выборке
8 сообщений из 8, страница 1 из 1
Очистка повторяющихся значений в выборке
    #37552995
Mairos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Приветствую всех!
Есть таблица вида
create table
(
id integer identity,
number varchar(20),
summa numeric(15,0),
number_2 varchar(20),
summa_2 numeric(15,0)
)

Каждому сочетанию "number - summa" может соответствовать несколько пар "number_2 - summa_2".
Т.е. пара "number - summa" в нескольких записях подряд будет повторяться, можно как-то зачистить повторяющиеся значения в первых двух полях, не прибегая к перебору таблицы в цикле или курсоре?
...
Рейтинг: 0 / 0
Очистка повторяющихся значений в выборке
    #37552998
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
distinct спасет
...
Рейтинг: 0 / 0
Очистка повторяющихся значений в выборке
    #37553006
Mairos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White Owl, боюсь что не спасёт. Тут же не полностью строка по всем полям идентична, а только по полям 2 и 3.
Надо чтобы вот так было

1 qwerty 25 rtyui 22
2 fghjk 45
3 asdfgh 47 lhkbn 89
4 mvnb 35
5 zxcvbn 33 jhfkh 11

чтобы в строке 2 не отобразилось "qwerty 25", а в строке 4 "asdfgh 47"
...
Рейтинг: 0 / 0
Очистка повторяющихся значений в выборке
    #37553009
Mairos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 и 4 строки съехали влево
...
Рейтинг: 0 / 0
Очистка повторяющихся значений в выборке
    #37553177
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
SELECT 
  id,
  CASE WHEN f.id IS NULL THEN t.number ELSE t.number_2 END AS number,
  CASE WHEN f.id IS NULL THEN t.summa ELSE t.summa_2 END AS summa,
  CASE WHEN f.id IS NULL THEN t.number_2 ELSE NULL END AS number_2,
  CASE WHEN f.id IS NULL THEN t.summa_2 ELSE NULL END AS summa_2
FROM table t
  LEFT JOIN (
    SELECT number, summa, Min(id) AS id
    FROM table
    GROUP BY number, summa
  ) AS f ON f.number = t.number AND f.summa = t.summa AND t.id > f.id
...
Рейтинг: 0 / 0
Очистка повторяющихся значений в выборке
    #37553185
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MairosWhite Owl, боюсь что не спасёт.
Надо чтобы вот так было 10533930 Вопросы номер 2 и 4.
...
Рейтинг: 0 / 0
Очистка повторяющихся значений в выборке
    #37553480
Mairos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ASCRUS, спасибо большое! Это немного не то, но сам скрипт ваш подсказал правильный путь. ))
...
Рейтинг: 0 / 0
Очистка повторяющихся значений в выборке
    #37553485
Mairos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот, собственно..
Код: plaintext
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.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
---------------------------
SABASE ASE  12 . 5 
--------------------------
create table #itog
(
	id		int  identity,
	Brief_1     char( 35 ), 
	SumPay		numeric( 15 , 0 ), 
	Brief_2     char( 35 ), 
	sum_1       numeric( 15 , 0 ), 
	sum_2		numeric( 15 , 0 ),
	RepDate		smalldatetime
)

insert into #itog
(
	Brief_1, 
	SumPay, 
	Brief_2, 
	sum_1, 
	sum_2,
	RepDate	
)
values
(
    'qwerty',
     123 ,
    'asdfg',
     110 ,
     120 ,
    '20110701'
    
)
------------------
insert into #itog
(
	Brief_1, 
	SumPay, 
	Brief_2, 
	sum_1, 
	sum_2,
	RepDate	
)
values
(
    'qwerty',
     123 ,
    'asdfg2',
     111 ,
     121 ,
    '20110701'
    
)
----------------------------
select 
    case when f.Brief_2 is NULL then t.Brief_1 else Null end as Brief_1,
    case when f.Brief_2 is NULL then t.SumPay else Null end as SumPay,
    t.Brief_2, 
    t.Sum_1,
    t.Sum_2,
    t.RepDate    
    from #itog t
 left join #itog f
 ON f.Brief_1 = t.Brief_1 AND f.SumPay = t.SumPay AND t.id > f.id
Модератор: не забывай про кнопку SRC
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Очистка повторяющихся значений в выборке
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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