我有两种看法。一个视图显示了客户合同的到期日期。另一种是返回客户合同的所有开始日期。我不想知道过期合同的续订金额。规则是,客户必须在合同到期后的 90 天内开始签订合同。
假设分析期是 2013 年 1 月。我的到期金额为 2835,15。现在我有两个 (2835, 1596) 合约在到期后的未来 90 天内开始。
我需要一个查询来获得结果:
尝试了很多语句,但我发现没有办法得到这个结果。有什么想法吗?
谢谢
我有两种看法。一个视图显示了客户合同的到期日期。另一种是返回客户合同的所有开始日期。我不想知道过期合同的续订金额。规则是,客户必须在合同到期后的 90 天内开始签订合同。
假设分析期是 2013 年 1 月。我的到期金额为 2835,15。现在我有两个 (2835, 1596) 合约在到期后的未来 90 天内开始。
我需要一个查询来获得结果:
尝试了很多语句,但我发现没有办法得到这个结果。有什么想法吗?
谢谢
这是我尝试过的答案
表一:
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
您可以在括号中声明要比较的参数