1

问题很简单——我相信答案也可能很简单。

系统是 SQL Server 2008 R2。

有一个带有sp_WHYWHYWHY3 个参数的存储过程 - 2 个是日期,一个是供应商代码。

语句中的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

我知道你不能这样写——但这正是最终结果应该是的。

我该怎么做,真的吗?

感谢您抽出时间阅读和回答。

4

1 回答 1

2

不要想太多!您希望供应商代码与提供的值匹配,或者提供的值ABC与存储的供应商代码匹配YY

尝试这个

AND ([SupplierCode] = @SupplierCode
OR ([SupplierCode] <> @SupplierCode 
    AND @SupplierCode ='ABC' 
    AND [SupplierCode] = 'YY'))
于 2012-10-24T02:22:42.003 回答