Report Builder 3.0 可选参数
Report Builder 3.0 optional parameter
是否有机会在报表生成器中使用可选参数?
例如: 我有一个包含 3 个参数的查询
@Pa1 date
@Pa2 date
@Pa3 varchar(3)
如果我 运行 查看报告而不通知其中之一然后我收到消息:
Select参数@Pa3的值(例如)
可能吗?
我尝试使用空字段,但没有得到任何数据
select a.legajo,c.nombres,e.Descripcion,CONVERT (char(10), a.fecha, 103) as Fecha,a.hora as ENTRADA,
b.hora as SALIDA,
DATEDIFF(HOUR,a.hora,b.hora) as Horas_trabajadas,
c.hor_x_jor Horas_jornada,
DATEDIFF(HOUR,a.hora,b.hora) -hor_x_jor as Diferencia
from fichadas_in a, fichadas_out b, empleados c,sucursales d,Clasificacion e
where a.Legajo=b.Legajo
and a.fecha=b.fecha
and a.fecha between @fecha1 and @fecha2
and d.codigo=@sucursal
and a.legajo=c.legajo
and c.CCO=d.Codigo
and e.Codigo=c.Clasif
Order by a.fecha,legajo
您的参数允许空值或空白值。
如前所述,您需要 select 允许空白值和允许空值。但您还必须确保 SQL 知道如何处理 WHERE 子句中的这些值。
AND (
((@Pa3 IS NOT NULL AND @Pa3 != '') AND d.codigo = @Pa3)
OR
((@Pa3 IS NULL OR @Pa3 = '') AND d.codigo LIKE '%'))
)
还有其他方法可以做到这一点,但请确保您考虑了那些 values/lack 的值。
对于日期范围,我建议在 运行 SELECT 语句之前声明另一个计算日期值的变量。如果值为空、空或已输入。
变量可能进入@Pa1,然后计算到@fecha1,然后在WHERE子句中你使用@fecha1。
是否有机会在报表生成器中使用可选参数?
例如: 我有一个包含 3 个参数的查询
@Pa1 date
@Pa2 date
@Pa3 varchar(3)
如果我 运行 查看报告而不通知其中之一然后我收到消息:
Select参数@Pa3的值(例如)
可能吗?
我尝试使用空字段,但没有得到任何数据
select a.legajo,c.nombres,e.Descripcion,CONVERT (char(10), a.fecha, 103) as Fecha,a.hora as ENTRADA,
b.hora as SALIDA,
DATEDIFF(HOUR,a.hora,b.hora) as Horas_trabajadas,
c.hor_x_jor Horas_jornada,
DATEDIFF(HOUR,a.hora,b.hora) -hor_x_jor as Diferencia
from fichadas_in a, fichadas_out b, empleados c,sucursales d,Clasificacion e
where a.Legajo=b.Legajo
and a.fecha=b.fecha
and a.fecha between @fecha1 and @fecha2
and d.codigo=@sucursal
and a.legajo=c.legajo
and c.CCO=d.Codigo
and e.Codigo=c.Clasif
Order by a.fecha,legajo
您的参数允许空值或空白值。
如前所述,您需要 select 允许空白值和允许空值。但您还必须确保 SQL 知道如何处理 WHERE 子句中的这些值。
AND (
((@Pa3 IS NOT NULL AND @Pa3 != '') AND d.codigo = @Pa3)
OR
((@Pa3 IS NULL OR @Pa3 = '') AND d.codigo LIKE '%'))
)
还有其他方法可以做到这一点,但请确保您考虑了那些 values/lack 的值。
对于日期范围,我建议在 运行 SELECT 语句之前声明另一个计算日期值的变量。如果值为空、空或已输入。
变量可能进入@Pa1,然后计算到@fecha1,然后在WHERE子句中你使用@fecha1。