查找交易列表的新日期
Posted
技术标签:
【中文标题】查找交易列表的新日期【英文标题】:Find new dates for list of deals 【发布时间】:2020-04-25 20:55:35 【问题描述】:我想在日历中查找不包含在交易+日期列的表格中的日期。 代码中具有预期结果的示例 (T-SQL)。谢谢你的建议
create table #deals
(id int ,
dates date);
create table #calendar
(dates date );
create table #result
(id int ,
dates date);
-----calendar table (tbl#1)
insert into #calendar values ('2020-04-19');
insert into #calendar values ('2020-04-20');
insert into #calendar values ('2020-04-21');
-----deals table (tbl#2)
insert into #deals values ('111', '2020-04-19');
insert into #deals values ('111', '2020-04-20');
insert into #deals values ('222', '2020-04-18');
----expected result table
insert into #result values ('111', '2020-04-21');
insert into #result values ('222', '2020-04-19');
insert into #result values ('222', '2020-04-20');
insert into #result values ('222', '2020-04-21');
select * from #calendar;
select * from #deals;
select * from #result
【问题讨论】:
【参考方案1】:生成交易和日期的所有组合,然后删除存在的组合:
select d.id, c.date
from (select distinct id from #deals) d cross join
#calendar c left join
#deals dd
on dd.id = d.id and dd.date = c.date
where dd.id is null;
【讨论】:
谢谢,太好了。但是我觉得,这种方法不是最有效的吗?! @SergeyFido 。 . .如果您有替代方案,可以将它们进行比较。我想不出另一种明显的方法来做你想做的事——除了在这方面的细微变化,比如使用exists
或except
(如果你的数据库支持的话)。以上是关于查找交易列表的新日期的主要内容,如果未能解决你的问题,请参考以下文章
Mysql Query查找Purchase_history表中所购商品的最后交易日期