【发布时间】:2018-02-02 05:21:21
【问题描述】:
问题:
假设以下 dbo.LoanStatements 表已提供给您。该表的所有记录如下所示。每条记录都会显示该语句的发送时间。
LoanID StatementDate OriginalLoanToValue
-------------------------------------------
1 03/15/2005 0.80
1 04/15/2005 0.90
1 05/15/2005 0.90
1 06/15/2005 0.90
2 08/15/2017 66.7
2 09/15/2017 66.7
2 10/15/2017 0.50
3 10/15/2017 0.66
4 10/15/2017 0.55
-
编写一个 SELECT 语句(或多个语句)返回 以下结果集
LoanID OriginalLoanToValue
1 0.90 2 0.50 3 0.66 4 0.55
尝试的解决方案 -
SELECT LoanID, OriginalLoanToValue
FROM LoanStatements
WHERE StatementDate IN (
SELECT MAX(StatementDate)
FROM LoanStatements
GROUP BY LoanID
);
- 2005 年发送了多少份报表? 2017 年?请显示 SELECT 语句(或多个语句)。
尝试的解决方案:
2005 年:
SELECT LoanID,StatementDate,OriginalLoanToValue
FROM LoanStatements
WHERE year(StatementDate) = 2005;
2017:
SELECT LoanID,StatementDate,OriginalLoanToValue
FROM LoanStatements
WHERE year(StatementDate) = 2017;
我没有任何方法可以检查这段代码是否正确,这正是我能想到的我所知道的小 SQL,如果有人能澄清这是否正确,我将不胜感激。谢谢!
【问题讨论】:
-
你想要的第二个输出是什么?
-
@JohnWoo 我没有答案
-
嗨...我建议您尝试@SQL Fiddle 的语句。这是一个在线平台,您可以在其中创建虚拟模式、表;填充和查询它们。你不需要安装任何东西。然后,您将能够轻松地验证您的逻辑。链接 - sqlfiddle.com
-
'没办法检查'?
标签: mysql sql-server sql-server-2005