Я изучаю экзамен SQL Server, и у меня возникли эти вопросы, на которые я ответил неправильно, но я не понимаю, почему правильные ответы правильные и как вы их получите.Неверный прогноз результата SQL Server
nr naam aantal chef
1 Anouk 14 2
2 Hans 14 NULL
3 Ali 13 5
4 Kees 12 5
5 Ben 3 2
nr soort stad chef
1 cursus DenHaag 2
2 cursus Amsterdam NULL
3 congres NewYork 5
4 lezing Utrecht 5
nr werknemer reis aantal datum bedrag
01 1 4 8 17-04-2013 420,56
02 3 3 5 05-04-2013 825,80
03 1 1 5 10-04-2013 140,00
04 null 2 2 10-04-2013 156,75
05 4 4 8 17-04-2013 328,90
06 5 3 5 05-04-2013 560,45
В 2 вопроса:
а.
SELECT naam
FROM werknemer
WHERE nr NOT IN (SELECT werknemer
FROM declaratie);
b.
SELECT naam, COUNT(*)
FROM werknemer w LEFT OUTER JOIN declaratie d ON w.nr = d.werknemer
GROUP BY naam;
Мои ответы:
a: Hans
b: naam count(*)
Anouk 2
Hans 0
Ali 1
Kees 1
Ben 1
Но правильные ответы:
a: none
b: naam count(*)
Anouk 2
Hans 1
Ali 1
Kees 1
Ben 1
Может кто-нибудь объяснить мне, что я, вероятно, пропустил?
Теперь я понимаю. Я запустил запрос с SQL-сервера без NOT, и он выводит все имена, кроме Hans, но вы говорите, что это (IN (1, NULL, 3,4,5)) приводит к набору результатов NULL? –
Я уточнил свою точку зрения а) и предоставил ссылку, которая очень четко отвечает на ваш вопрос. – strickt01