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

Откуда: Minsk Power Station
Сообщений: 506
Здравствуйте!

Подскажите пожалуйста как запросить id учеников, у которых отсутствуют параметрические данные.
Таблицы приблизительно такие:
--список всех учеников
declare @Pupils table(id int, [Name] varchar(10))
insert into @Pupils(id,name)
select 1, 'Ваня' union all
select 2, 'Петя' union all
select 3, 'Жора' union all
select 4, 'Даша' union all
select 5, 'Таня'  

--таблица биометрических данных
declare @PupilMetrics table(id int, Height int, [Weight] int)
insert into @PupilMetrics(id, Height, [Weight])
select 1, 166, 40 union all
select 2, 168, 50 union all
select 4, 138, 34

select [name], Height, [Weight] from @Pupils p inner join @PupilMetrics pm on p.id = pm.id

возвращает троих учеников. А нужны, наоборот, те, у которых не проставлены значения. Т.е. Жора и Таня
21 янв 19, 19:42    [21790569]     Ответить | Цитировать Сообщить модератору
 Re: Вернуть записи по которым нет данных  [new]
londinium
Member

Откуда: Киев
Сообщений: 1167
palladin600,
select [name], Height, [Weight] from @Pupils p
where not exists
(
  select 1 from @PupilMetrics pm
   where p.id=pm.id
)
21 янв 19, 19:47    [21790571]     Ответить | Цитировать Сообщить модератору
 Re: Вернуть записи по которым нет данных  [new]
palladin600
Member

Откуда: Minsk Power Station
Сообщений: 506
londinium,

спасибо, но можно ли более детальный синтаксис? А то, подсвечивает с ошибкой поля Height, [Weight], мол, нет таких в таблице @Pupils.
21 янв 19, 20:38    [21790610]     Ответить | Цитировать Сообщить модератору
 Re: Вернуть записи по которым нет данных  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36965
palladin600
londinium,

спасибо, но можно ли более детальный синтаксис? А то, подсвечивает с ошибкой поля Height, [Weight], мол, нет таких в таблице @Pupils.
А что вы в этих полях хотите увидеть?

Сообщение было отредактировано: 21 янв 19, 20:40
21 янв 19, 20:40    [21790611]     Ответить | Цитировать Сообщить модератору
 Re: Вернуть записи по которым нет данных  [new]
palladin600
Member

Откуда: Minsk Power Station
Сообщений: 506
Гавриленко Сергей Алексеевич, здраствуйте,
планирую увидеть:
3, Жора
5, Таня
21 янв 19, 20:46    [21790613]     Ответить | Цитировать Сообщить модератору
 Re: Вернуть записи по которым нет данных  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36965
Ну так и напишите те поля, которые хотите увидеть.
21 янв 19, 20:52    [21790617]     Ответить | Цитировать Сообщить модератору
 Re: Вернуть записи по которым нет данных  [new]
palladin600
Member

Откуда: Minsk Power Station
Сообщений: 506
Гавриленко Сергей Алексеевич,
резонно, благодарю.

id	name
3 ????
5 ????

а, не скажете, а почему в окне запросов MSQLSMS выкидываются вопросы вместо русских букв? Уже и nvarchar поставил в name, и всё равно '????'
21 янв 19, 20:58    [21790622]     Ответить | Цитировать Сообщить модератору
 Re: Вернуть записи по которым нет данных  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36965
declare @Pupils table(id int, [Name] nvarchar(10))
insert into @Pupils(id,name)
select 1, N'Ваня' union all
select 2, N'Петя' union all
select 3, N'Жора' union all
select 4, N'Даша' union all
select 5, N'Таня'  
21 янв 19, 22:17    [21790649]     Ответить | Цитировать Сообщить модератору
 Re: Вернуть записи по которым нет данных  [new]
Kopelly
Member

Откуда: Красноярск
Сообщений: 289
select [name], Height, [Weight] from @Pupils p left join @PupilMetrics pm on p.id = pm.id Where Height is null or [Weight] is null
22 янв 19, 05:50    [21790738]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить