SQL Server: получение даты безопасности в запросе - есть ли более простой способ написать это? - PullRequest
0 голосов
/ 28 апреля 2019

Мне нужно получить счетчик безопасности по датам, присутствующий в таблице priceinfo. Но тип безопасности указан в другой таблице (Мастер безопасности).

Решил запрос, используя следующее.

with priceinfo as 
(
     select distinct pdate 
     from pricing 
     where pdate >= '20190101'
)
select count(distinct security), pi.pdate 
from pricing pi 
join priceinfo on pricing.pdate = priceinfo.pdate
               and security in (select distinct security 
                                from securitymaster 
                                where pdate = priceinfo.pdate 
                                  and securitytype='BOND' )
group by 
    pi.pdate
order by 
    pi.pdate

Есть ли более простой способ написать этот запрос?

Примечание. Тип безопасности доступен только в мастере безопасности. Но мне нужен список ценных бумаг, которые присутствуют в таблице цен.

Таблица: SecurityMaster

* +1012 *enter image description here

enter image description here

enter image description here

1 Ответ

0 голосов
/ 28 апреля 2019

Это то, что вы ищете?

select p.pdate, count(*)
from pricing p join
     securitymaster sm
     on p.pdate = sm.pdate and p.security = sm.security
where sm.securitytype = 'Bond'
group by p.pdate
order by p.pdate;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...