Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 удалить список групп из таблицы sql  [new]
Kontox
Member

Откуда:
Сообщений: 146
в моем запросе
SELECT  [Dt]
      ,[CustomerName]
      ,[ItemRelation]
      ,[ProductName]
      ,[SaleCount]
      ,[DocumentNum]
      ,[DocumentDate]
      ,[IsPromo]
      ,[CustomerType]
      ,[CalendarYear]
  FROM [Action].[dbo].[promo_data]

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

      ,[ItemRelation]
      ,[DocumentNum]
      ,[CalendarYear]


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

Я вот что делаю
+ Заголовок

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".

Как правильно удалить группы из таблицы?
7 сен 18, 14:27    [21668206]     Ответить | Цитировать Сообщить модератору
 Re: удалить список групп из таблицы sql  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6794
Kontox,

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

DELETE  T FROM [Action].[dbo].[promo_data] T
7 сен 18, 14:29    [21668211]     Ответить | Цитировать Сообщить модератору
 Re: удалить список групп из таблицы sql  [new]
iap
Member

Откуда: Москва
Сообщений: 46954
TaPaK
Kontox,

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

DELETE  T FROM [Action].[dbo].[promo_data] T
Или полностью, если на то пошло :D
DELETE FROM T FROM [Action].[dbo].[promo_data] T
7 сен 18, 15:02    [21668253]     Ответить | Цитировать Сообщить модератору
 Re: удалить список групп из таблицы sql  [new]
iap
Member

Откуда: Москва
Сообщений: 46954
Или
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];
7 сен 18, 15:06    [21668259]     Ответить | Цитировать Сообщить модератору
 Re: удалить список групп из таблицы sql  [new]
Kontox
Member

Откуда:
Сообщений: 146
хм, я решил сделать бекапную таблицу и на ней опробывать

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 строк
7 сен 18, 15:21    [21668276]     Ответить | Цитировать Сообщить модератору
 Re: удалить список групп из таблицы sql  [new]
PaulYoung
Member

Откуда: Москва
Сообщений: 2548
Kontox
Как же мне удалить строки именно группы указанные, по идеи должно удалиться около 40*52=2080 строк
Правильно скопировать скрипт из примера выше и выполнить его
7 сен 18, 15:34    [21668294]     Ответить | Цитировать Сообщить модератору
 Re: удалить список групп из таблицы sql  [new]
StarikNavy
Member

Откуда: Москва
Сообщений: 2375
Kontox,

вы вначале сделайте запрос SELECT который вытаскивает интересующие вас строки. а потом его поменяйте на DELETE
7 сен 18, 15:35    [21668295]     Ответить | Цитировать Сообщить модератору
 Re: удалить список групп из таблицы sql  [new]
iap
Member

Откуда: Москва
Сообщений: 46954
Kontox,

ВСЕГДА пишите алиасы таблиц у полей. Это же так просто.
7 сен 18, 15:44    [21668310]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить