Гость
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Помогите решить задачку JOIN из двух таблиц / 3 сообщений из 3, страница 1 из 1
19.01.2020, 21:26
    #39916117
PauL Etta
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите решить задачку JOIN из двух таблиц
Есть две таблицы.
1:
create table t_licenses
( license_id int,
stock_id int,
license_desc varchar(100),
valid_from date,
valid_to date

license_id stock_id license_desc valid_from valid_to
1 1 Лицензия на продажу Алкоголя №123 2019-01-01 2019-06-01
2 1 Лицензия на продажу Табака №555 2019-01-01 2020-12-31
3 2 Лицензия на продажу Алкоголя №647 2019-01-01 2019-06-01
4 3 Лицензия на продажу Алкоголя №111 2019-01-01 2019-12-31
5 4 Лицензия на продажу Табака №5252 2019-01-01 2019-02-01
6 5 Лицензия на продажу Алкоголя №1 2019-01-01 2019-12-31
7 5 Лицензия на продажу Алкоголя №1 2020-01-01 2020-12-31
)
2:
create table t_stocks
(
stock_id int,
stock_name varchar(100),
open_dt date,
close_dt date
)

stock_id stock_name open_dt close_dt
1 Алакуртти 2018-01-01 2019-06-01
2 Вавил 2018-01-01 NULL
3 Воскресенск 2018-01-01 NULL
4 Гарант 2018-01-01 2019-01-01
5 Континент 2018-01-01 2018-01-01
6 Мираж 2018-01-01 NULL
7 Пепяка 2018-01-01 NULL
8 Планерная 2018-01-01 2019-12-01

--1. Получить список открытых магазинов и для каждого магазина в отдельном поле показать наличие действующей лицензии. Пишу запрос:
SELECT stock_name, COUNT(Valid_to) AS license
FROM t_stocks S CROSS JOIN t_licenses L
WHERE S.stock_id = L.stock_id
AND Valid_to > '19.01.2020'
AND close_dt IS NULL
GROUP BY stock_name

хочу в отдельной колонкой вывести значение, которые будет либо NULL либо 1. Проблема в том что если данных нет, то и нет пустых значений, т.е. в созданной колонке COUNT(Valid_to) AS license нет значения NULL. просто пустые данные, ПОЧЕМУ??
stock_name license
...
Рейтинг: 0 / 0
19.01.2020, 21:46
    #39916123
court
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите решить задачку JOIN из двух таблиц
from t_stocks S left join t_licenses L on S.stock_id = L.stock_id AND L.Valid_to > '20200119'
...
Рейтинг: 0 / 0
19.01.2020, 21:54
    #39916124
PauL Etta
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите решить задачку JOIN из двух таблиц
court,
ок. а как отобрать только открытые,ты пропустил условие AND close_dt IS NULL
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Помогите решить задачку JOIN из двух таблиц / 3 сообщений из 3, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]