Пожалуйста, смотрите: http://sqlfiddle.com/#!18/6552d/4
Таблица:
CREATE TABLE Figure(
MonthNumber varchar(10),
Code varchar(10),
Figure int
);
INSERT INTO Figure (MonthNumber, Code, Figure)
VALUES ('5', 'S', '25'),
('5','G', '30'),
('4','K', '30');
CREATE TABLE Person(
Code varchar(10)
);
INSERT INTO Person (Code)
VALUES ('S'),
('G' ),
('K' ),
('D' ),
('J');
Запрос:
SELECT F.[MonthNumber],
f.[Code],
f.[Figure]
FROM
Figure F
RIGHT JOIN Person P
ON F.[Code] = P.[Code]
WHERE F.[MonthNumber] = '5'
Результат:
| MonthNumber | Code | Figure |
|-------------|------|--------|
| 5 | S | 25 |
| 5 | G | 30 |
Но я ищу такой результат:
| MonthNumber | Code | Figure |
|-------------|------|--------|
| 5 | S | 25 |
| 5 | G | 30 |
| 5 | K | 30 |
| 5 | D | 0 |
| 5 | J | 0 |
Я хочу ограничить цифры 5-м месяцем, но также вернуть всех людей, даже если у них не было цифры. Я думал, что использование правильного синтаксиса соединения было бы правильным для этого, но это не дает мне результат, который я хочу. Я не могу выработать ту логику, которая мне нужна. Любая помощь приветствуется. спасибо