Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Почему то не работает запрос на удаление одинаковых строк. / 10 сообщений из 10, страница 1 из 1
27.03.2018, 16:17
    #39621329
Ferum1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему то не работает запрос на удаление одинаковых строк.
Добрый день!

Почему то ошибки при запуске запроса...
Взято с сайта http://npk-kaluga.ru/WorkDoubleRec_MSSQL.htm

Код: sql
1.
2.
3.
4.
5.
Delete from t from tovary t, tovary v

where t.tovar = v.tovar

and t.id > v.id



Код: sql
1.
2.
Сообщение 208, уровень 16, состояние 1, строка 1
Недопустимое имя объекта "tovar".



Так же объясните пожалуйста как работает конструкция строки с "Delete from t from tovary t, tovary v"

Так же когда использовал запрос

Код: sql
1.
Select Tovar, Count(*) from Tovary Group by Tovar having Count(*) > 1



Почему то просто "from Tovary" не работает, надо "from [MySampleBase].[dbo].[Tovary]"

Может в этом же проблема и строки "Delete from t from tovary t, tovary v"?
...
Рейтинг: 0 / 0
27.03.2018, 16:20
    #39621332
TaPaK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему то не работает запрос на удаление одинаковых строк.
Ferum1,
1.
Код: sql
1.
Delete t from tovary t, tovary v


2. ну и такой синтаксиси как "tovary t, tovary v" "устаревший" и часто ведёт к ошибкам
...
Рейтинг: 0 / 0
27.03.2018, 16:21
    #39621335
TaPaK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему то не работает запрос на удаление одинаковых строк.
авторПочему то просто "from Tovary" не работает, надо "from [MySampleBase].[dbo].[Tovary]"
вы не в той базе
USE [MySampleBase]
потом можно без базы, схему указывать всегда рекомендуется
...
Рейтинг: 0 / 0
27.03.2018, 16:36
    #39621370
Ferum1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему то не работает запрос на удаление одинаковых строк.
TaPaKFerum1,
1.
Код: sql
1.
Delete t from tovary t, tovary v


2. ну и такой синтаксиси как "tovary t, tovary v" "устаревший" и часто ведёт к ошибкам

Я не совсем понимаю синтаксис, что означают t и v? Так же ругань на t как недопустимое имя объекта..
...
Рейтинг: 0 / 0
27.03.2018, 16:45
    #39621385
Kopelly
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему то не работает запрос на удаление одинаковых строк.
Ferum1Я не совсем понимаю синтаксис, что означают t и v? Так же ругань на t как недопустимое имя объекта..
t и v - "алиасы".
Может на данном этапе так будет проще понять:

Код: sql
1.
2.
3.
4.
5.
Delete [Похожий] from tovary [Похожий], tovary [Исходный]

where [Похожий].tovar = [Исходный].tovar

and [Похожий].id > [Исходный].id



Можно расшифровать: удалить из [tovary] (похожий) если есть [tovary] с тем же значением [tovar] и меньшим [id]
...
Рейтинг: 0 / 0
27.03.2018, 17:42
    #39621461
Ferum1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему то не работает запрос на удаление одинаковых строк.
Спасибо всем, разобрался!
...
Рейтинг: 0 / 0
27.03.2018, 17:45
    #39621463
Ferum1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему то не работает запрос на удаление одинаковых строк.
Еще вопрос, есть ли у таблицы уникальный индекс по умолчанию и как к нему обратиться, что бы не создавать специально столбец id?
...
Рейтинг: 0 / 0
27.03.2018, 18:27
    #39621513
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему то не работает запрос на удаление одинаковых строк.
Ferum1Еще вопрос, есть ли у таблицы уникальный индекс по умолчанию и как к нему обратиться, что бы не создавать специально столбец id?Нет
...
Рейтинг: 0 / 0
27.03.2018, 19:35
    #39621549
iap
iap
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему то не работает запрос на удаление одинаковых строк.
Ferum1,

Код: sql
1.
2.
WITH CTE(N) AS(SELECT ROW_NUMBER()OVER(PARTITION BY tovar ORDER BY id) FROM tovary)
DELETE CTE WHERE N>1;



P.S. Завязывайте с запятой во FROMе!
...
Рейтинг: 0 / 0
29.03.2018, 00:03
    #39622387
Ferum1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему то не работает запрос на удаление одинаковых строк.
Спасибо коллеги, буду разбираться)
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Почему то не работает запрос на удаление одинаковых строк. / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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