问题很简单 - 我相信答案也可能很简单。
系统是SQL Server 2008 R2。
存储过程sp_WHYWHYWHY
需要3个参数 - 2个是日期,1个是供应商代码。
语句中的WHERE
子句如下所示:
OrderDate BETWEEN @StartDate AND @EndDate
AND SupplierCode = @SupplierCode
业务流程已经发生了变化 - 一如既往。所以现在在供应商代码中只有一个供应商(比如说YY
)现在已经与其他供应商保持一致(比如ABC
)。
因此,代码需要在查询ABC
时说明 - 包括YY
。
像
这样的东西OrderDate BETWEEN @StartDate AND @EndDate
AND SupplierCode = CASE WHEN @SupplierCode = 'ABC' THEN 'YY','ABC' ELSE @SupplierCode END
我知道你不能这样写 - 但这就是最终结果应该是什么。
我怎么能这样做,真的吗?
感谢您花时间阅读&答案。
答案 0 :(得分:2)
不要过度思考它!您希望供应商代码与提供的值匹配,或提供的值为ABC
,存储的供应商代码为YY
。
试试这个
AND ([SupplierCode] = @SupplierCode
OR ([SupplierCode] <> @SupplierCode
AND @SupplierCode ='ABC'
AND [SupplierCode] = 'YY'))