黑白日期以周,月和年为单位

时间:2019-02-26 07:13:38

标签: sql-server

我有一张贷款分期付款的表格,我想获得贷款的总期限。 每笔贷款的到期日保存在db中,并且基于每月和每周保存。我不会保存任何支票来确定是每月还是每周的贷款性质。 现在,如果两个日期之间的持续时间以周为单位,则应该以27周或2周为单位来表示持续时间,如果以月为单位,则应该以5个月或2年4个月来表示。

LoanID   DueDate     AmountToBePaid
2        2019-01-01  500
2        2019-01-07  500
2        2019-01-14  500
2        2019-01-21  500
2        2019-01-28  500

我想要的持续时间是5周,但返回的时间是2个月。 还有一个主表,其中可以保存贷款的总分期付款。这是我的查询,希望有人可以提供帮助。

SELECT LoanID,
    CASE WHEN NoOfInstallment>12
          THEN CAST(NoOfInstallment/12 AS VARCHAR(10))+' Years '
       ELSE '' END
    +
    CASE WHEN NoOfInstallment%12>0
          THEN CAST(NoOfInstallment%12 AS VARCHAR(10))+' Months'
       ELSE '' END AS [TotalDuration]
FROM LoanMaster
INNER JOIN LoanDetail ON LoanMaster.ID = LoanDetail.LoanID

1 个答案:

答案 0 :(得分:0)

您可以尝试这样的事情

SELECT 
  LoanId,
  DATEDIFF(WEEK, inst_start, inst_end) weeks 
FROM LoanMaster LM
INNER JOIN (
  SELECT 
    select 
      dateadd(month, -1,min(due_date)) inst_start, 
      max(due_date) inst_end
  FROM LoanDetail
) LD
ON LM.ID = LD.LoanID