查找交易列表的新日期

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 。 . .如果您有替代方案,可以将它们进行比较。我想不出另一种明显的方法来做你想做的事——除了在这方面的细微变化,比如使用existsexcept(如果你的数据库支持的话)。

以上是关于查找交易列表的新日期的主要内容,如果未能解决你的问题,请参考以下文章

Mysql Query查找Purchase_history表中所购商品的最后交易日期

如何根据日期范围在 Stripe 中获取费用(交易)详细信息

在 SAS 中查找第二个最晚日期

使用 Excel 显示日期范围内的出现次数

在用户日表中查找最近的购买日期

更便捷 更智能 更安全happy交易所数字资产交易的新宠儿