0

我有两种看法。一个视图显示了客户合同的到期日期。另一种是返回客户合同的所有开始日期。我不想知道过期合同的续订金额。规则是,客户必须在合同到期后的 90 天内开始签订合同。

http://d.pr/i/bITI

假设分析期是 2013 年 1 月。我的到期金额为 2835,15。现在我有两个 (2835, 1596) 合约在到期后的未来 90 天内开始。

我需要一个查询来获得结果:

http://d.pr/i/3ztY

尝试了很多语句,但我发现没有办法得到这个结果。有什么想法吗?

谢谢

4

1 回答 1

0

这是我尝试过的答案

表一:

USE [NMIIFDB_DEV]
GO

/****** Object:  Table [dbo].[tes1]    Script Date: 5/3/2013 4:20:35 PM ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE TABLE [dbo].[tes1](
    [ContractEndDate] [date] NULL,
    [CustomerNo] [nvarchar](50) NULL,
    [ContractAmount] [numeric](18, 2) NULL
) ON [PRIMARY]

GO

表 2

USE [NMIIFDB_DEV]
GO

/****** Object:  Table [dbo].[tes2]    Script Date: 5/3/2013 4:20:46 PM ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE TABLE [dbo].[tes2](
    [ContractStartDate] [date] NULL,
    [CustomerNo] [nvarchar](50) NULL,
    [ContractAmount] [numeric](18, 2) NULL
) ON [PRIMARY]

GO

选择声明

select YEAR(T1.ContractEndDate) AS ExpirationYear, MONTH(T1.ContractEndDate) as ExpirationMonth,

T1.ContractAmount AS ExpirationAmount, SUM(T2.ContractAmount) AS RenewalAmount
from tes1 T1, tes2 T2

where MONTH(T1.ContractEndDate) = 01 AND YEAR(T1.ContractEndDate) = 2013 AND MONTH(T2.ContractStartDate) = 01 AND YEAR(T2.ContractStartDate) = 2013 

GROUP BY YEAR(T1.ContractEndDate), MONTH(T1.ContractEndDate),
T1.ContractAmount

您可以在括号中声明要比较的参数

于 2013-05-03T09:20:43.603 回答