【问题标题】:SQL Query for loansSQL查询贷款
【发布时间】: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
  1. 编写一个 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
);
  1. 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


【解决方案1】:

如果“StatementDate”列的数据类型为“DATE”、“DATETIME”、“TIMESTAMP”、“YEAR”,则您的查询将正确。

【讨论】:

  • 如果你采用我上面提到的任何数据类型,那么它会给你绝对好的结果
  • 对不起,我不确定你的意思
  • StatementDate 列的数据类型是什么?
  • 不知道面试官只是通过电子邮件发送数据
  • 正如我在帖子中所写的
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-12-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-16
  • 1970-01-01
相关资源
最近更新 更多