Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / удалить список групп из таблицы sql / 8 сообщений из 8, страница 1 из 1
07.09.2018, 14:27
    #39699655
Kontox
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
удалить список групп из таблицы sql
в моем запросе
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
SELECT  [Dt]
      ,[CustomerName]
      ,[ItemRelation]
      ,[ProductName]
      ,[SaleCount]
      ,[DocumentNum]
      ,[DocumentDate]
      ,[IsPromo]
      ,[CustomerType]
      ,[CalendarYear]
  FROM [Action].[dbo].[promo_data]


есть группирующие колонки

Код: sql
1.
2.
3.
      ,[ItemRelation]
      ,[DocumentNum]
      ,[CalendarYear]



некоторые группы должны быть удалены

Я вот что делаю
Заголовок
Код: 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.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
declare @LIST_ABOVE table (ItemRelation nvarchar(10),DocumentNum nvarchar(10),CalendarYear int)
insert @LIST_ABOVE (ItemRelation,DocumentNum,CalendarYear)
values
(11511,5,2017),
(11628,2,2017),
(11661,163,2017),
(11692,82,2017),
(11709,143,2017),
(13189,33,2017),
(13284,2,2017),
(158009,12,2017),
(158121,63,2017),
(11514,60,2017),
(11628,3,2017),
(11671,13,2017),
(11706,8,2017),
(11741,163,2017),
(13191,7,2017),
(13284,3,2017),
(158010,12,2017),
(158122,41,2017),
(11592,33,2017),
(11628,140,2017),
(11683,70,2017),
(11706,50,2017),
(13163,70,2017),
(13191,33,2017),
(13322,4,2017),
(158010,89,2017),
(158122,62,2017),
(11594,9,2017),
(11633,75,2017),
(11683,140,2017),
(11706,51,2017),
(13163,75,2017),
(13250,83,2017),
(13322,36,2017),
(158010,95,2017),
(158122,63,2017),
(11623,71,2017),
(11634,154,2017),
(11683,154,2017),
(11706,58,2017),
(13163,131,2017),
(13269,50,2017),
(157186,57,2017),
(158121,41,2017),
(11626,29,2017),
(11661,143,2017),
(11683,163,2017),
(11709,81,2017),
(13189,13,2017),
(13269,66,2017),
(157192,56,2017),
(158121,62,2017)


DELETE  FROM [Action].[dbo].[promo_data] T
  WHERE EXISTS (SELECT 1 FROM LIST_ABOVE WHERE [ItemRelation]=T.[ItemRelation] AND [DocumentNum]=T.[DocumentNum] 
  AND [CalendarYear]=T.[CalendarYear])




ошибка
Сообщение 102, уровень 15, состояние 1, строка 62
Неправильный синтаксис около конструкции "T".

Как правильно удалить группы из таблицы?
...
Рейтинг: 0 / 0
07.09.2018, 14:29
    #39699659
TaPaK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
удалить список групп из таблицы sql
Kontox,

или алиас убрать или

Код: sql
1.
DELETE  T FROM [Action].[dbo].[promo_data] T
...
Рейтинг: 0 / 0
07.09.2018, 15:02
    #39699689
iap
iap
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
удалить список групп из таблицы sql
TaPaKKontox,

или алиас убрать или

Код: sql
1.
DELETE  T FROM [Action].[dbo].[promo_data] T

Или полностью, если на то пошло :D
Код: sql
1.
DELETE FROM T FROM [Action].[dbo].[promo_data] T
...
Рейтинг: 0 / 0
07.09.2018, 15:06
    #39699693
iap
iap
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
удалить список групп из таблицы sql
Или
Код: sql
1.
2.
3.
DELETE T
FROM [Action].[dbo].[promo_data] T
JOIN @LIST_ABOVE L ON T.[ItemRelation]=L.[ItemRelation] AND T.[DocumentNum]=L.[DocumentNum] AND T.[CalendarYear]=L.[CalendarYear];
...
Рейтинг: 0 / 0
07.09.2018, 15:21
    #39699705
Kontox
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
удалить список групп из таблицы sql
хм, я решил сделать бекапную таблицу и на ней опробывать

Код: sql
1.
2.
3.
DELETE T  FROM [Action].[dbo].testtable T
	  WHERE EXISTS (SELECT 1  FROM @LIST_ABOVE WHERE [ItemRelation]=[ItemRelation] AND [DocumentNum]=[DocumentNum] 
	  AND [CalendarYear]=[CalendarYear])



у меня поудалились не только строки, где есть эти группы. одна группа может иметь, ну 40 строк, а все 400 000 наблюдений.
Как же мне удалить строки именно группы указанные, по идеи должно удалиться около 40*52=2080 строк
...
Рейтинг: 0 / 0
07.09.2018, 15:34
    #39699716
PaulYoung
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
удалить список групп из таблицы sql
KontoxКак же мне удалить строки именно группы указанные, по идеи должно удалиться около 40*52=2080 строкПравильно скопировать скрипт из примера выше и выполнить его
...
Рейтинг: 0 / 0
07.09.2018, 15:35
    #39699717
StarikNavy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
удалить список групп из таблицы sql
Kontox,

вы вначале сделайте запрос SELECT который вытаскивает интересующие вас строки. а потом его поменяйте на DELETE
...
Рейтинг: 0 / 0
07.09.2018, 15:44
    #39699727
iap
iap
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
удалить список групп из таблицы sql
Kontox,

ВСЕГДА пишите алиасы таблиц у полей. Это же так просто.
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / удалить список групп из таблицы sql / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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