我正在尝试使用case语句创建一个新列“ PolicyStatus”。 case语句的值取决于对两个变量的出现次数进行计数,并且这两个变量都必须发生特定的次数。
这里是一个例子:
按OpportuntiyID分组,如果至少有3个QuoteID并且在7个内至少有3个值是“是”,则策略为“策略内”。下面是示例数据和到目前为止的代码。我的案例陈述有些不正确,但我不确定如何更正。
我得到的错误是:
Msg 102, Level 15, State 1, Line 35
Incorrect syntax near ')'.
这是直接引用case语句。
我非常感谢大家为纠正此问题提供的帮助。
机会ID,QUOTEID,通过的天数,在7之内 0060c00001QF5jiAAD,a060c00001REnnuAAD,-81,否 0060c00001QF5jiAAD,a060c00001REnpqAAD,-81,否 0060c00001QF5jiAAD,a060c00001REnsBAAT,-81,否 0060c00001QGz6JAAT,NULL,NULL,否 0060c00001QHxZhAAL,a060c00001cVlyzAAC,-32,否 0060c00001QHxZhAAL,a060c00001cVlzEAAS,-32,否 0060c00001QHxZhAAL,a060c00001cVm02AAC,-32,否 0060c00001QHxZhAAL,a060c00001cVm0bAAC,-32,否 0060c00001QHxZhAAL,a060c00001cUhzeAAC,0,是 0060c00001QIaK3AAL,a060c00001cV9YeAAK,4,是 0060c00001QIaK3AAL,a060c00001cV9YZAA0,4,是 0060c00001QIFfZAAX,a060c00001REtIEAA1,43,是 0060c00001QIk2UAAT,a060c00001cUYm9AAG,18,是 0060c00001QIk2UAAT,a060c00001cUYmEAAW,18,是 0060c00001QIk2UAAT,a060c00001cUYmTAAW,18,是 0060c00001QIwgaAAD,a060c00001cVMekAAG,0,是 0060c00001QIWoPAAX,a060c00001cW8eAAAS,-35,否 0060c00001QIYKbAAP,a060c00001cUYHkAAO,-65,否 0060c00001QIYKbAAP,a060c00001cUYKtAAO,-65,否 0060c00001QIYKbAAP,a060c00001RDzNYAA1,6,是 0060c00001QL7bkAAD,a060c00001cUQCmAAO,21,是 0060c00001QL7bkAAD,a060c00001cUQCXAA4,21,是 0060c00001QL7bkAAD,a060c00001cUQDkAAO,21,是 0060c00001QLWg6AAH,NULL,NULL,否 0060c00001QxJSgAAN,NULL,NULL,否 0060c00001QxOe4AAF,空,空,否 0060c00001Rae5dAAB,a060c00001cUvOLAA0,3,是 0060c00001Rb5RoAAJ,a060c00001cUWgEAAW,8,是 0060c00001Rb5RoAAJ,a060c00001cUWgJAAW,8,是 0060c00001Rb8wuAAB,a060c00001cUvEaAAK,-1,是 0060c00001Rb8wuAAB,a060c00001cUvEGAA0,-1,是
SELECT
[OPPORTUNITYID]
, COUNT([QUOTEID]) AS 'CountOfQuotes'
, CASE WHEN COUNT([QUOTEID]) >= 3 AND COUNT([WITHIN7] = 'YES') >=3 THEN 'Within Policy'
ELSE 'Breached Policy' END AS 'PolicyStatus'
FROM [DB].dbo.[TABLE]
GROUP BY [OPPORTUNITYID]
ORDER BY [OpportunityID]
GO