我正在为客户开发一个统计数据解决方案,现在我需要通过使用来自另一个表的动态条件(由客户填写并且它可以每天更改)来选择一些行from a table
(销售数据)。
另外我需要使用光标来执行更多的计算和其他的东西所以这是场景:
DECLARE cRiga CURSOR LOCAL FAST_FORWARD FOR
-- here i will put the SELECT ...
OPEN cRiga
FETCH NEXT FROM cRiga INTO @field1, @field2, @field3, ...
WHILE @@FETCH_STATUS = 0
BEGIN
-- do some stuff here ...
FETCH NEXT FROM cRiga INTO @field1, @field2, @field3, ...
END
CLOSE cRiga
DEALLOCATE cRiga
这是我可以找到动态条件的条件表(请参阅列 Completa = 0)
IDIncentive CdMarca CdSettore CdGruppo Completa
----------- ------- --------- -------- -----------
1 COES NULL NULL 1
1 DELONG 10 0024 0 <
1 RHOSS NULL NULL 1
1 SILE 10 0012 0 <
1 SILE 11 0025 0 <
1 THERMI NULL NULL 1
....... more rows ...
为了更清楚,我尝试将许多查询中所需的 SQL 分解为:
Select Field1, ... from SELLDATA
where IDIncentive=1 and CdMarca='DELONG' and CdSettore=10 and CdGruppo='0024'
UNION ALL
Select Field1, ... from SELLDATA
where IDIncentive=1 and CdMarca='SILE' and CdSettore=10 and CdGruppo='0012'
UNION ALL
Select Field1, ... from SELLDATA
where IDIncentive=1 and CdMarca='SILE' and CdSettore=11 and CdGruppo='0025'
你可以想象我不能这样做,因为客户每天都会改变条件,所以我的问题是:
我如何创建一个具有在光标中使用的所有条件(如我上面的示例)的选择?有办法吗?
感谢谁能帮助我,如果需要更多信息以更清楚地说明这个问题,请告知