将同一列的日期分为多行,直到指定下一个日期值-SQL Server-英雄云拓展知识分享
320
2024-01-22
我有两个访问表A和B:
Table AIdentifier BenefitBase PlanNav

1 131368.46 131368.46
2 201768.8 201768.79
3 54057.46 54057.46
4 7397.51 7397.51
5 9931.4 9931.4
6 178200 178200
Table B
p ValidityDate LockInAmount
1 2016⑷ 3.82
2 2016⑷ 19.97
3 2016⑷ 26.85
4 2016⑹ 34.95
我只想创建一个查询,该查询从表A中从B中提取记录中提取记录。我当前的代码是:
SELECT B.p, B.ValidityDate, B.LockInAmountFROM B
WHERE (((B.p) Not In (select Identifier from A)));
现在对我来讲,此代码应当很好。但是,由于表如此之大(B组成486,000行(在此表中重复“不同的日期”),而每次运行查询时,A包括一个大概19,000),访问填充了查询进度栏,但是靠近时冻结。
还有另外一种方法吗?
谢谢
您也能够使用左联接来做一样的事情Gustav所做的事情。我更容易浏览,我相信它将经过相同的履行计划运行。
select B.p, B.ValididtyDate, B.LockInAmountfrom B
left join A on B.P = A.Identifier
where A.Identifier is null
并加上Erik上面推荐的索引。(也就是说,如果P和标识符是您表上的主要钥匙,那末它们已被索引,您不需要添加索引)
免责声明:
本网址(www.yingxiongyun.com)发布的材料主要源于独立创作和网友匿名投稿。此处提供的所有信息仅供参考之用。我们致力于提供准确且可信的信息,但不对材料的完整性或真实性作出任何保证。用户应自行验证相关信息的正确性,并对其决策承担全部责任。对于由于信息的错误、不准确或遗漏所造成的任何损失,本网址不承担任何法律责任。本网站所展示的所有内容,如文字、图像、标志、音频、视频、软件和程序等的版权均属于原创作者。如果任何组织或个人认为网站内容可能侵犯其知识产权,或包含不准确之处,请即刻联系我们进行相应处理。
发表评论
暂时没有评论,来抢沙发吧~