powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Выбрать все записи без повтора значений в столбце.
4 сообщений из 4, страница 1 из 1
Выбрать все записи без повтора значений в столбце.
    #40102172
Serge163
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте.
Есть таблица:
Код: 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.
39.
40.
41.
42.
43.
CREATE TABLE Norm (
  id_ngod INT IDENTITY
 ,god INT NULL CONSTRAINT DF_Norm_god DEFAULT (DATEPART(YEAR, GETDATE()))
 ,cs_id INT NULL
 ,summa FLOAT NULL CONSTRAINT DF_Norm_summa DEFAULT (NULL)
 ,CONSTRAINT PK_Z_norm PRIMARY KEY CLUSTERED (id_ngod)
) ON [PRIMARY]
GO

SET IDENTITY_INSERT Norm ON
GO

INSERT Norm(id_ngod, god, cs_id, summa) VALUES (510, 2021, 73, 5500000)
INSERT Norm(id_ngod, god, cs_id, summa) VALUES (512, 2021, 7903, 8500000)
INSERT Norm(id_ngod, god, cs_id, summa) VALUES (513, 2021, 1909, 5000000)
INSERT Norm(id_ngod, god, cs_id, summa) VALUES (514, 2021, 14860, 2000000)
INSERT Norm(id_ngod, god, cs_id, summa) VALUES (515, 2021, 7989, 1500000)
INSERT Norm(id_ngod, god, cs_id, summa) VALUES (516, 2021, 51, 1500000)
INSERT Norm(id_ngod, god, cs_id, summa) VALUES (517, 2021, 52, 5000000)
INSERT Norm(id_ngod, god, cs_id, summa) VALUES (518, 2021, 64, 2750000)
INSERT Norm(id_ngod, god, cs_id, summa) VALUES (519, 2021, 7903, 8500000)
INSERT Norm(id_ngod, god, cs_id, summa) VALUES (520, 2021, 14866, 1000000)
INSERT Norm(id_ngod, god, cs_id, summa) VALUES (521, 2021, 14953, 3000000)
INSERT Norm(id_ngod, god, cs_id, summa) VALUES (522, 2021, 14960, 500000)
INSERT Norm(id_ngod, god, cs_id, summa) VALUES (523, 2021, 8, 2500000)
INSERT Norm(id_ngod, god, cs_id, summa) VALUES (524, 2021, 7985, 20000000)
INSERT Norm(id_ngod, god, cs_id, summa) VALUES (525, 2021, 7923, 4000000)
INSERT Norm(id_ngod, god, cs_id, summa) VALUES (526, 2021, 14845, 5500000)
INSERT Norm(id_ngod, god, cs_id, summa) VALUES (527, 2021, 14864, 5000000)
INSERT Norm(id_ngod, god, cs_id, summa) VALUES (528, 2021, 13, 1200000)
INSERT Norm(id_ngod, god, cs_id, summa) VALUES (529, 2021, 62, NULL)
INSERT Norm(id_ngod, god, cs_id, summa) VALUES (530, 2021, 73, 5500000)
INSERT Norm(id_ngod, god, cs_id, summa) VALUES (531, 2021, 1909, 5000000)
INSERT Norm(id_ngod, god, cs_id, summa) VALUES (532, 2021, 2713, 2000000)
INSERT Norm(id_ngod, god, cs_id, summa) VALUES (533, 2021, 7926, 21500000)
INSERT Norm(id_ngod, god, cs_id, summa) VALUES (534, 2021, 7978, 300000)
INSERT Norm(id_ngod, god, cs_id, summa) VALUES (535, 2021, 7982, 700000)
INSERT Norm(id_ngod, god, cs_id, summa) VALUES (536, 2021, 7983, 50000)
INSERT Norm(id_ngod, god, cs_id, summa) VALUES (537, 2021, 62, NULL)

GO
SET IDENTITY_INSERT Norm OFF
GO



Необходимо выбрать все записи без повторяющихся значений в столбце cs_id
В результате должно быть 23 стоки вместо 27.

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
id_ngod	god	cs_id	       summa
523	      2021	8	        2500000
528	      2021	13	        1200000
516	      2021	51	        1500000
517	      2021	52	        5000000
537	      2021	62	        NULL
518	      2021	64	        2750000
530	      2021	73	        5500000
531	      2021	1909	        5000000
532	      2021	2713	        2000000
512	      2021	7903	        8500000
525	      2021	7923	        4000000
533	      2021	7926	        21500000
534	      2021	7978	        300000
535	      2021	7982	        700000
536	      2021	7983	        50000
524	      2021	7985	        20000000
515	      2021	7989	        1500000
526	      2021	14845	5500000
514	      2021	14860	2000000
527	      2021	14864	5000000
520	      2021	14866	1000000
521	      2021	14953	3000000



Прошу помощи, заранее премного благодарен. Прошу прощение за корявость примера.
...
Рейтинг: 0 / 0
Выбрать все записи без повтора значений в столбце.
    #40102177
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если ты доложишь нам, какой из "повторов cs_id" оставлять - нет ничо сложного.
...
Рейтинг: 0 / 0
Выбрать все записи без повтора значений в столбце.
    #40102216
Serge163
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вероятно, вы правы нужно знать, что оставлять.
Записи с одинаковым cs_id полностью идентичные за исключением их id_ngod. Если возможно, то нужно два варианта, первый оставить записи с наименьшим id_ngod и второй, оставить записи с наибольшим id_ngod.
...
Рейтинг: 0 / 0
Выбрать все записи без повтора значений в столбце.
    #40102277
Serge163
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем спасибо, вопрос решен.
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
SELECT
  MAX(id_ngod) id_ngod
 ,god
 ,cs_id
 ,summa
FROM dbo.Norm
  GROUP BY god
 ,cs_id
 ,summa


SELECT
  MIN(id_ngod) id_ngod
 ,god
 ,cs_id
 ,summa
FROM dbo.Norm
  GROUP BY god
 ,cs_id
 ,summa
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Выбрать все записи без повтора значений в столбце.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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