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

Откуда: Нововоронеж
Сообщений: 25
Требуется выбрать из базы всех водителей.
Выдает пустой запрос

К сообщению приложен файл. Размер - 137Kb
1 фев 14, 12:46    [15504190]     Ответить | Цитировать Сообщить модератору
 Re: Запрос не выбирает значения  [new]
sdet
Member

Откуда:
Сообщений: 463
Michail000,
Не стоит использовать not in (лучше not exists)
1 фев 14, 12:55    [15504206]     Ответить | Цитировать Сообщить модератору
 Re: Запрос не выбирает значения  [new]
Michail000
Member

Откуда: Нововоронеж
Сообщений: 25
sdet
Michail000,
Не стоит использовать not in (лучше not exists)


выдает ошибку
Сообщение 156, уровень 15, состояние 1, строка 4
Incorrect syntax near the keyword 'exists'.
Сообщение 156, уровень 15, состояние 1, строка 5
Incorrect syntax near the keyword 'and'.
1 фев 14, 13:58    [15504326]     Ответить | Цитировать Сообщить модератору
 Re: Запрос не выбирает значения  [new]
Michail000
Member

Откуда: Нововоронеж
Сообщений: 25
Michail000,

К сообщению приложен файл. Размер - 149Kb
1 фев 14, 14:00    [15504331]     Ответить | Цитировать Сообщить модератору
 Re: Запрос не выбирает значения  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31983
[quote Michail000]Michail000,

У вас синтаксис неправильный.

Вы выложите запрос как текст, что бы можно было показать, где именно.
1 фев 14, 14:01    [15504333]     Ответить | Цитировать Сообщить модератору
 Re: Запрос не выбирает значения  [new]
Michail000
Member

Откуда: Нововоронеж
Сообщений: 25
alexeyvg,

select Name,FirstName,MidName,
(select Name from [PPost] where ID = Post) as Post,
(select Name from [PDivision] where ID = Section) as Section, ChangeTime
from [pList] where [Status] != 1 and [ID] not in
(select distinct [HozOrgan] from [pLogData]) and Post in
(select ID from [PPost] where Name LIKE 'Водитель%')
-- ChangeTime > '01-01-2013'-- and [ID] not in (select [Owner] from [pMark] where [Config] = 128)
order by Section,Name,FirstName,MidName
1 фев 14, 15:08    [15504462]     Ответить | Цитировать Сообщить модератору
 Re: Запрос не выбирает значения  [new]
Michail000
Member

Откуда: Нововоронеж
Сообщений: 25
Michail000,

select Name,FirstName,MidName,
(select Name from [PPost] where ID = Post) as Post,
(select Name from [PDivision] where ID = Section) as Section, ChangeTime
from [pList] where [Status] != 1 and [ID] not exists
(select distinct [HozOrgan] from [pLogData]) and Post in
(select ID from [PPost] where Name LIKE 'Водитель%')
-- ChangeTime > '01-01-2013'-- and [ID] not exists (select [Owner] from [pMark] where [Config] = 128)
order by Section,Name,FirstName,MidName
1 фев 14, 15:10    [15504469]     Ответить | Цитировать Сообщить модератору
 Re: Запрос не выбирает значения  [new]
sdet
Member

Откуда:
Сообщений: 463
Michail000,
А смотреть help по конструкциям SQL вы совсем не приучены?
1 фев 14, 16:09    [15504573]     Ответить | Цитировать Сообщить модератору
 Re: Запрос не выбирает значения  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31983
Michail000,

Сначала форматируем, чтобы хоть прочитать можно было:
select Name,FirstName,MidName,
    (select Name from [PPost] where ID = Post) as Post,
    (select Name from [PDivision] where ID = Section) as Section, 
    ChangeTime
from [pList] where [Status] != 1 
    and [ID] not exists (select distinct [HozOrgan] from [pLogData]) 
    and Post in (select ID from [PPost] where Name LIKE 'Водитель%')
order by Section,Name,FirstName,MidName

Далее видим, что "and [ID] not exists " - это неправильно.

Нужно писать
and not exists (select distinct [HozOrgan] from [pLogData] where [HozOrgan] = [ID]) 


Ещё всегда пользуйтесь алиасами, потому что непонятно (и серверу тоже), какое поле какой таблице соответствует.
1 фев 14, 16:20    [15504596]     Ответить | Цитировать Сообщить модератору
 Re: Запрос не выбирает значения  [new]
iap
Member

Откуда: Москва
Сообщений: 47144
alexeyvg
Michail000,

Сначала форматируем, чтобы хоть прочитать можно было:
select Name,FirstName,MidName,
    (select Name from [PPost] where ID = Post) as Post,
    (select Name from [PDivision] where ID = Section) as Section, 
    ChangeTime
from [pList] where [Status] != 1 
    and [ID] not exists (select distinct [HozOrgan] from [pLogData]) 
    and Post in (select ID from [PPost] where Name LIKE 'Водитель%')
order by Section,Name,FirstName,MidName


Далее видим, что "and [ID] not exists " - это неправильно.

Нужно писать
and not exists (select distinct [HozOrgan] from [pLogData] where [HozOrgan] = [ID]) 



Ещё всегда пользуйтесь алиасами, потому что непонятно (и серверу тоже), какое поле какой таблице соответствует.
Зачем в EXISTS() написан DISTINCT?
1 фев 14, 16:28    [15504618]     Ответить | Цитировать Сообщить модератору
 Re: Запрос не выбирает значения  [new]
Michail000
Member

Откуда: Нововоронеж
Сообщений: 25
Вы меня извините, я только начинаю работать. Спасибо за помощь.
1 фев 14, 16:32    [15504634]     Ответить | Цитировать Сообщить модератору
 Re: Запрос не выбирает значения  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31983
iap
Зачем в EXISTS() написан DISTINCT?
Ну это я бездумно скопировал :-)
1 фев 14, 21:06    [15505093]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить