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

Откуда:
Сообщений: 409
Здравствуйте!
Такой вопрос : нужно выбрать все неповторяющиеся записи из таблицы. Использую оператор DISTINCT, но записи всё-равно повторяются. Работаю в хранимой процедуре. Что не так делаю?
SELECT DISTINCT IdCar, brandOfCar FROM Cars
21 сен 11, 20:14    [11315340]     Ответить | Цитировать Сообщить модератору
 Re: Правильная работа DISTINCT  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
И что у Вас повторяется (пример данных)? Какие типы данных?
21 сен 11, 20:26    [11315419]     Ответить | Цитировать Сообщить модератору
 Re: Правильная работа DISTINCT  [new]
теле шмель пат
Guest
erman,

бренды повторяются? так вы в дистинкте ID машины, а не бренда написали. вот и выводится ID каждой машины с повторяющимися брендами.
21 сен 11, 21:00    [11315580]     Ответить | Цитировать Сообщить модератору
 Re: Правильная работа DISTINCT  [new]
erman
Member

Откуда:
Сообщений: 409
CREATE TABLE Cars(
IdCar INT IDENTITY NOT NULL PRIMARY KEY,
brandOfCar NVARCHAR(30) NOT NULL
);
DROP PROCEDURE GetBrands
CREATE PROCEDURE GetBrands
AS
SELECT IdCar, DISTINCT brandOfCar FROM Cars

Если так написать - ошибка синтаксиса!
21 сен 11, 21:15    [11315636]     Ответить | Цитировать Сообщить модератору
 Re: Правильная работа DISTINCT  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
erman
Если так написать - ошибка синтаксиса!
Ну так прекратите его выдумывать.
21 сен 11, 21:18    [11315650]     Ответить | Цитировать Сообщить модератору
 Re: Правильная работа DISTINCT  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
erman
CREATE TABLE Cars(
IdCar INT IDENTITY NOT NULL PRIMARY KEY,
brandOfCar NVARCHAR(30) NOT NULL
);
DROP PROCEDURE GetBrands
CREATE PROCEDURE GetBrands
AS
SELECT IdCar, DISTINCT brandOfCar FROM Cars

Если так написать - ошибка синтаксиса!
Какой IdCar надо возвращать для двух одинаковых brandOfCar?
Сервер сам должен принять решение?
21 сен 11, 21:19    [11315652]     Ответить | Цитировать Сообщить модератору
 Re: Правильная работа DISTINCT  [new]
trew
Member

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

SELECT DISTINCT brandOfCar FROM Cars
21 сен 11, 21:30    [11315690]     Ответить | Цитировать Сообщить модератору
 Re: Правильная работа DISTINCT  [new]
erman
Member

Откуда:
Сообщений: 409
trew
erman,

SELECT DISTINCT brandOfCar FROM Cars


но мне нужно ещё и IdCar вернуть..
21 сен 11, 21:36    [11315708]     Ответить | Цитировать Сообщить модератору
 Re: Правильная работа DISTINCT  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
trew
erman,

SELECT DISTINCT brandOfCar FROM Cars
А с IdCar-то что? И не нужен был, да?
21 сен 11, 21:38    [11315713]     Ответить | Цитировать Сообщить модератору
 Re: Правильная работа DISTINCT  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
erman
trew
erman,

SELECT DISTINCT brandOfCar FROM Cars


но мне нужно ещё и IdCar вернуть..
Повторяю вопрос: какой?
21 сен 11, 21:41    [11315728]     Ответить | Цитировать Сообщить модератору
 Re: Правильная работа DISTINCT  [new]
trew
Member

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

1 бренд1
2 бренд2
3 бренд1

Какой ID должен быть для бренд1 ? (1 или 3)
21 сен 11, 21:44    [11315739]     Ответить | Цитировать Сообщить модератору
 Re: Правильная работа DISTINCT  [new]
erman
Member

Откуда:
Сообщений: 409
Да, так не получится. Буду работать через бренд. Спасибо всем за помощь!
21 сен 11, 22:12    [11315856]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить