22,209
社区成员
发帖
与我相关
我的任务
分享
姓名 卡号 账单日 还款日 固定额度 还款类型 还款金额 还款日期
王五 52245678920 6 25 50000 计划 1000 2014/11/12
王五 42113652489 9 20 20000 实际 2300 2014/11/10
张三 12345678911 12 28 25000 实际 200 2014/11/13
张三 12345678911 12 28 25000 计划 150 2014/11/10
DECLARE @MinDate DATETIME,@MaxDate DATETIME
SELECT @MinDate=MIN(CAST(CONVERT(VARCHAR(8),还款日期,111)+CAST(账单日 AS VARCHAR(10))AS DATETIME))
,@MaxDate=MAX(CAST(CONVERT(VARCHAR(8),还款日期,111)+CAST(还款日 AS VARCHAR(10))AS DATETIME))
FROM 表名
DECLARE @SQL VARCHAR(MAX)
SET @SQL=''
DECLARE @SQL2 VARCHAR(MAX)
SET @SQL2=''
SELECT @SQL=@SQL+',SUM(CASE WHEN CONVERT(VARCHAR(10),还款日期,111)='''+CONVERT(VARCHAR(10),DATEADD(DAY,number,@MinDate),111)
+''' THEN 还款金额 END)['+CONVERT(VARCHAR(10),DATEADD(DAY,number,@MinDate),111)+']'
,@SQL2=@SQL2+',NULL ['+CONVERT(VARCHAR(10),DATEADD(DAY,number,@MinDate),111)+']'
FROM master..spt_values
WHERE type='P'AND number<=DATEDIFF(DAY,@MinDate,@MaxDate)
SET @SQL='SELECT 姓名,卡号,还款类型[项目],SUM(还款金额)[合计]'+@SQL+',1[A]FROM 表名 GROUP BY 姓名,卡号,还款类型'
+' UNION ALL '
+'SELECT 姓名,卡号,''固定额度'',固定额度'+@SQL2+',2[A]FROM 表名 GROUP BY 姓名,卡号,固定额度'
+' ORDER BY 姓名,卡号,A'
EXEC(@SQL)
小调下DECLARE @MinDate DATETIME,@MaxDate DATETIME
SELECT @MinDate=MIN(CAST(CONVERT(VARCHAR(8),还款日期,111)+CAST(账单日 AS VARCHAR(10))AS DATETIME))
,@MaxDate=MAX(CAST(CONVERT(VARCHAR(8),还款日期,111)+CAST(还款日 AS VARCHAR(10))AS DATETIME))
FROM 表名
PRINT @MinDate
PRINT @MaxDate
DECLARE @SQL VARCHAR(MAX)
SET @SQL=''
DECLARE @SQL2 VARCHAR(MAX)
SET @SQL2=''
SELECT @SQL=@SQL+',SUM(CASE WHEN CONVERT(VARCHAR(10),还款日期,111)='''+CONVERT(VARCHAR(10),DATEADD(DAY,number,@MinDate),111)
+''' THEN 还款金额 END)['+CONVERT(VARCHAR(10),DATEADD(DAY,number,@MinDate),111)+']'
,@SQL2=@SQL2+',NULL ['+CONVERT(VARCHAR(10),DATEADD(DAY,number,@MinDate),111)+']'
FROM master..spt_values
WHERE type='P'AND number<=DATEDIFF(DAY,@MinDate,@MaxDate)
SET @SQL='SELECT 姓名,卡号,还款类型[项目],SUM(还款金额)[合计]'+@SQL+',固定额度,1[A]FROM 表名 GROUP BY 姓名,卡号,还款类型,固定额度'
+' UNION ALL '
+'SELECT 姓名,卡号,''固定额度'',固定额度'+@SQL2+',固定额度,2[A]FROM 表名 GROUP BY 姓名,卡号,固定额度'
+' ORDER BY 姓名,固定额度 DESC,A'
EXEC(@SQL)