- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我发现“CPR”是一种基于键的不同方面的功能。
我们目前的公式是这样的:
SELECT All
a.[CUSIP NUMBER],
CPR,
a.[POOL PREFIX],
a.[POOL NUMBER],
a.[POOL TYPE],
a.[CURRENT MM],
a.[CURRENT YY],
a.[ISSUE MM],
a.[ISSUE DD],
a.[ISSUE YY],
a.[MATURITY MM],
a.[MATURITY DD],
a.[MATURITY YY],
a.[SELLER NAME],
a.[SELLER STREET],
a.[SELLER CITY],
a.[SELLER STATE],
a.[SELLER ZIP],
a.[ORIGINAL WA COUPON],
a.[SD SECURITY TYPE],
a.[SD INTEREST RATE],
a.[SD POOL PREFIX],
a.[SD POOL NUMBER],
a.[CURRENT WA COUPON],
a.[CURRENT BALANCE],
a.[ORIGINAL WA MATURITY],
a.[CURRENT WA MATURITY],
a.[PASS THRU RATE],
a.[CURRENT FACTOR],
b.[CURRENT FACTOR] as AprilFactor,
b.[ORIGINAL BALANCE],
MonthlyRate,
Payment,
InterestPayment,
Principle,
ScheduledFace,
PreviousFace,
ScheduledFactor,
SMM
INTO March2013CPR
FROM dbo.mbs022013 a
JOIN dbo.mbs032013 b ON a.[CUSIP NUMBER] = b.[CUSIP NUMBER]
CROSS APPLY (Select (a.[PASS THRU RATE]*.01)/12) CA(MonthlyRate)
CROSS APPLY (Select (a.[CURRENT BALANCE] * ((MonthlyRate)/((1-(1/power(1+ MonthlyRate, a.[CURRENT WA MATURITY]))))))) CA2(Payment)
Cross Apply (Select a.[CURRENT BALANCE] * MonthlyRate) CA3 (InterestPayment)
Cross Apply (Select Payment - InterestPayment) CA4 (Principle)
Cross Apply (Select a.[ORIGINAL BALANCE] * a.[CURRENT FACTOR]) CA5 (PreviousFace)
CROSS APPLY (Select PreviousFace - Principle) CA6(ScheduledFace)
Cross Apply (Select ScheduledFace/a.[ORIGINAL BALANCE]) CA7 (ScheduledFactor)
Cross Apply (Select 100 * (1-(b.[CURRENT FACTOR]/ScheduledFactor))) CA8(SMM)
Cross Apply (Select (1-(power(1-SMM/100,12)))*100) CA9 (CPR)
WHERE a.[CURRENT WA MATURITY] != 0 and a.[CURRENT BALANCE] != 0
我们通过交叉应用进行计算,以便我们可以将整个投资组合发布到一个新表中,其中包含每个债券的 CPR 值。这个函数已经工作了几个月的数据,但是这个月它只是返回:
Msg 8117, Level 16, State 1, Line 49
Operand data type varchar is invalid for multiply operator.
这是计算三月份的函数。三月的文件使用二月文件和三月文件中的信息。但是,我认为这两个文件都没有问题,因为函数对于使用 1 月和 2 月数据的 2 月文件以及使用 4 月和 3 月数据的 4 月文件都是正确的。
第 49 行是这样写的:
Cross Apply (Select a.[ORIGINAL BALANCE] * a.[CURRENT FACTOR]) CA5 (PreviousFace)
任何想法如何解决? :-D
更新:
这是一些示例数据:
CUSIP NUMBER Original Balance Current Factor Pass Thru Rate Current Balance
31416HAB1 00000325972000 0.19556008 04.500 00000063747109
31416HAB1 00003749061700 0.11487645 05.000 00000430678890
31416HAC9 00002164121900 0.15490762 05.500 00000335238974
31416HAD7 00000274716900 0.22204878 06.000 00000061000552
31416HAE5 00018198400200 0.10905233 06.000 00001984577976
当前 WA 成熟度范围为 0-360。
最佳答案
扩展 @Alex K 和 Dev n00b 的评论,您的 [Original Balance] 中似乎有字符数据,前导零证明了这一点。数据类型优先级允许从字符类型 (char/varchar/nchar/nvarchar) 到数字类型 (int/float/decimal) 的隐式转换。
某处,在您的数据中,您似乎在该列中有一个非数字值。如果 CAST 失败,CONVERT 也会失败。您可能需要查找不正确的行并更正数据。否则,如果您可以忽略这些值并且由于您使用的是 SQL Server 2012,则可以利用 TRY_CONVERT功能类似
Cross Apply (Select TRY_CONVERT(bigint, a.[ORIGINAL BALANCE]) * a.[CURRENT FACTOR]) CA5 (PreviousFace)
关于sql - 操作数数据类型 varchar 对乘法运算符无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17813185/
我在 presto 中有表,名为(“mappings”)的列将键值对作为字符串 从 hello 中选择映射; 例如:{“foo”:“baar”,“foo1”:“bar1”} 我想将“映射”列转换为 M
我总是会在表格的特定列中输入 20 个字符的内容。 我需要此列是唯一的。 如果我将此列设置为 varchar(255) 而不是 varchar(20),SELECT 查询的速度会有任何差异吗? (输入
我在 the Dapper .NET project home page 上发现了以下评论. Dapper supports varchar params, if you are executing
我有以下代码。 Case 语句将列出的数字转换为文本并将其余代码转换为 NULL,但我不断收到以下错误:将 VARCHAR 值“RDG5”转换为数据类型 INT 时转换失败。 RDG5 是被转换为 N
运行此脚本时出现以下错误。我尝试过使用以下内容:整理 Latin1_General_CI_AS。请问可以排序吗?谢谢 Msg 457, Level 16, State 1, Line 8 Implic
是否可以将 SQL Server 2008 数据库中的列类型从 varchar(255) 更改为 varchar(MAX),而无需删除表并重新创建? 每次我尝试使用它来执行此操作时,SQL Serve
每次我对选择 varchar(max) 或 varchar(fix) 数据类型感到困惑。假设我有一个大约 5000 个 varchar 的数据列。列不是 null 类型。 我应该将其设置为 varch
您好,我遇到问题,我的 friend 拒绝更改字段的数据类型,所以我在使用 order by 时遇到问题,这里是示例数据 04-07-2016(mm-dd-yyyy) 和字段名称名为 regis_da
对于文字游戏,我正在尝试向 VARCHAR 数组添加 CHECK 约束: CREATE TABLE words_games ( gid SERIAL PRIMARY KEY,
我有一个 varchar 字段,其内容如下: a,b,c,d e,d,a,c b,q,d,e 我需要执行一个查询,仅选择具有与输入字符串相等的元素的字段的行。 前输入:c,a 选择的行: a,b,c,
大家好,我计划创建包含 10 列的表,该表应该至少有 10,000,000 行,并且在其中,我将有列 description - VARCHAR(600) 和索引。 所以问题是,在该列上查询 LIKE
我读过这个question关于MySQL中VARCHAR(254)和VARCHAR(255)的区别。 HiveQL 中是否有必须考虑的类似内容?也许 HiveQL 实现了一些类似于 MySQL 的存储
在 MySQL 中,VARCHAR(1024) 和 VARCHAR(512) 有什么区别?如果我的项目永远不会超过 512 个字符,那么使用 VARCHAR(1024) 我会失去什么? 最佳答案 不知
由于 Varchar 字段的存储要求基于输入的字符串的实际长度,将每个 Varchar 字段指定为最大可能的缺点是什么:Varchar (65535)?那么,除了最大字段 > 255 个字符的 1 个
我正在尝试搜索具有数据类型 map(varchar,varchar) 的列。现在访问列的一种方法是使用这个结构,name_of_column[' key '],它将给出该键的值。但我想知道什么是可能的
快速提问。如果我将使用十进制字段限制或十六进制(比如 16、32、64 而不是 10、20、50),从存储数据的角度来看是否重要? 我问是因为我想知道这是否与 HDD 上的集群有关? 谢谢! 最佳答案
我发现我可以写 SELECT CAST(Min(mynumber) AS VARCHAR(Max))+'mystring' AS X 作为 SELECT CAST(Min(mynumber) AS V
我必须将字符串“johnmelling”值插入到列为 的表中[用户密码] varbinary NOT NULL。 请有人建议我,插入“johnmelling”的最佳转换是什么? 我尝试插入如下, In
我已经在 MSDN 论坛和此处阅读了此内容,但仍然不清楚。我认为这是正确的: Varchar(max) 将存储为文本数据类型,因此有缺点。假设您的字段可靠地少于 8000 个字符。就像我的数据库表中的
我有一个这样描述的表: mysql> describe easy_table; +---------------------+--------------+------+-----+---------
我是一名优秀的程序员,十分优秀!