【发布时间】:2017-05-17 14:36:37
【问题描述】:
即使我在表达式上使用 ABS() 函数,CASE 语句似乎也没有捕获具有负值的记录。有问题的记录是值为 -1.52 的记录,它应该在 case 语句的范围内“
WHEN ABS(DifferenceHours - @Mean_Diff) >1*@SD
AND ABS(DifferenceHours - @Mean_Diff) <=2*@SD
THEN 'Recommend Review'
"
任何人都可以对此有所了解吗?提前致谢! (对预期结果的格式感到抱歉)
创建包含示例数据的表的脚本:
CREATE TABLE [dbo].[Sample_Data](
[ID] [char](6) NOT NULL,
[Actual_Hours] [decimal](38, 2) NULL,
[Standard_Hours] [decimal](10, 2) NULL,
[DifferenceHours] [decimal](38, 2) NULL
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
INSERT [dbo].[Sample_Data] ([ID], [Actual_Hours], [Standard_Hours], [DifferenceHours]) VALUES (N'490412', CAST(1.22 AS Decimal(38, 2)), CAST(0.92 AS Decimal(10, 2)), CAST(0.30 AS Decimal(38, 2)))
INSERT [dbo].[Sample_Data] ([ID], [Actual_Hours], [Standard_Hours], [DifferenceHours]) VALUES (N'491712', CAST(1.36 AS Decimal(38, 2)), CAST(0.92 AS Decimal(10, 2)), CAST(0.44 AS Decimal(38, 2)))
INSERT [dbo].[Sample_Data] ([ID], [Actual_Hours], [Standard_Hours], [DifferenceHours]) VALUES (N'493822', CAST(1.96 AS Decimal(38, 2)), CAST(0.92 AS Decimal(10, 2)), CAST(1.04 AS Decimal(38, 2)))
INSERT [dbo].[Sample_Data] ([ID], [Actual_Hours], [Standard_Hours], [DifferenceHours]) VALUES (N'496762', CAST(1.51 AS Decimal(38, 2)), CAST(1.84 AS Decimal(10, 2)), CAST(-0.33 AS Decimal(38, 2)))
INSERT [dbo].[Sample_Data] ([ID], [Actual_Hours], [Standard_Hours], [DifferenceHours]) VALUES (N'497082', CAST(2.72 AS Decimal(38, 2)), CAST(0.92 AS Decimal(10, 2)), CAST(1.80 AS Decimal(38, 2)))
INSERT [dbo].[Sample_Data] ([ID], [Actual_Hours], [Standard_Hours], [DifferenceHours]) VALUES (N'497092', CAST(1.45 AS Decimal(38, 2)), CAST(0.92 AS Decimal(10, 2)), CAST(0.53 AS Decimal(38, 2)))
INSERT [dbo].[Sample_Data] ([ID], [Actual_Hours], [Standard_Hours], [DifferenceHours]) VALUES (N'497162', CAST(2.06 AS Decimal(38, 2)), CAST(0.92 AS Decimal(10, 2)), CAST(1.14 AS Decimal(38, 2)))
INSERT [dbo].[Sample_Data] ([ID], [Actual_Hours], [Standard_Hours], [DifferenceHours]) VALUES (N'498002', CAST(2.03 AS Decimal(38, 2)), CAST(0.92 AS Decimal(10, 2)), CAST(1.11 AS Decimal(38, 2)))
INSERT [dbo].[Sample_Data] ([ID], [Actual_Hours], [Standard_Hours], [DifferenceHours]) VALUES (N'498632', CAST(0.89 AS Decimal(38, 2)), CAST(0.92 AS Decimal(10, 2)), CAST(-0.03 AS Decimal(38, 2)))
INSERT [dbo].[Sample_Data] ([ID], [Actual_Hours], [Standard_Hours], [DifferenceHours]) VALUES (N'499162', CAST(0.79 AS Decimal(38, 2)), CAST(1.84 AS Decimal(10, 2)), CAST(-1.05 AS Decimal(38, 2)))
INSERT [dbo].[Sample_Data] ([ID], [Actual_Hours], [Standard_Hours], [DifferenceHours]) VALUES (N'499582', CAST(1.19 AS Decimal(38, 2)), CAST(0.92 AS Decimal(10, 2)), CAST(0.27 AS Decimal(38, 2)))
有问题的代码:
我正在为堆栈交换的格式而苦苦挣扎。当我在其中粘贴我的代码时,会增加换行符并去掉“一些”星号。我不知道为什么。我在尝试整理代码时在这里发布了代码。有趣的是,创建包含示例数据的表的代码似乎没有问题。
https://codedump.io/share/7ISZ7p8qrXvu/1
来自 Sample_Data
我的预期结果:
ID | Actual_Hours | Standard_Hours | DifferenceHours | Deviation | Recommendation
490412 | 1.22 | 0.92 | 0.30 | -0.17 |
491712 | 1.36 | 0.92 | 0.44 | -0.03 |
493822 | 1.96 | 0.92 | 1.04 | 0.57 |
496762 | 1.51 | 1.84 |-0.33 | -0.80 |
497082 | 2.72 | 0.92 | 1.80 | 1.33 | Recommend Review
497092 | 1.45 | 0.92 | 0.53 | 0.06 |
497162 | 2.06 | 0.92 | 1.14 | 0.67 |
498002 | 2.03 | 0.92 | 1.11 | 0.64 |
498632 | 0.89 | 0.92 |-0.03 | -0.50 |
499162 | 0.79 | 1.84 | -1.05| -1.52 | RecommendReview <-
499582 | 1.19 | 0.92 | 0.27 | -0.20 |
【问题讨论】:
-
复制和粘贴时是否从代码中删除了某些内容?我在 Standard_Hours)100>25 收到错误
-
一秒,错误检查。谢谢你顺便看看这个
-
是的,复制粘贴有问题,现在尝试修复它
-
我发布了一个代码链接 - 格式适合我..
-
我找到了你的问题,检查我的答案。