首页 > 解决方案 > 用于提取上次加载日期不等于今天的帐户的 SQL 查询

问题描述

我在查询中似乎遇到了一些问题,需要您的帮助。

我有 2 张桌子:

第一个表包含银行帐户详细信息 - 帐号、状态等 - bankacc

第二个表存储语句的名称和导入语句的加载日期-bankstm

我正在尝试编写一个查询,该查询将仅填充截至今天尚未导入其对帐单的那些银行帐户。

数据库中的日期格式 -2020-01-17 00:00:00.000

我尝试过的代码:

SELECT b.bank_acc as Bank_Account, max(b.date_ld) as Load_Date from bankstm b 
where  b.date_ld < CAST(GETDATE() AS DATE) and 
b.bank_acc in (select a.acc_no from bankacc a where a.in_use = 'Y' and a.analyse03 = '1517') 
group by b.bank_acc

此代码填充上一日期的所有记录,而其中大多数是今天加载的语句。

我还尝试使用'=''<>''>'基于先前在堆栈溢出中引发的查询的代码。但似乎没有什么能给我正确的结果。

所以最后我提出来让专家帮助我。

标签: sqlsql-servertsql

解决方案


您需要在最大值上应用日期过滤器。我将 max(b.date_ld) 转换为日期,以防它的日期时间格式

SELECT b.bank_acc as Bank_Account, max(b.date_ld) as Load_Date from bankstm b 
where   
b.bank_acc in (select a.acc_no from bankacc a where a.in_use = 'Y' and a.analyse03 = '1517') 
group by b.bank_acc
having cast(max(b.date_ld) as date) < CAST(GETDATE() AS DATE)  

推荐阅读