【发布时间】:2018-11-08 07:13:03
【问题描述】:
我有这个程序,我希望能够发送或不发送@sucursal参数
例如:如果我运行这个,我应该得到所有带有参数 9 的值
EXEC Fichada_por_sucursal '2018-05-01','2018-05-05','9'
如果运行这个,无论如何我都应该得到所有的值
EXEC Fichada_por_sucursal '2018-05-01','2018-05-05',''
存储过程:
ALTER PROCEDURE Fichada_por_sucursal
(@fecha1 DATE,
@fecha2 DATE,
@sucursal INT)
AS
SELECT
CASE DATENAME(dw, a.fecha )
WHEN 'Monday' then 'Lunes'
WHEN 'Tuesday ' then 'Martes'
WHEN 'Wednesday ' then 'Miércoles'
WHEN 'Thursday' then 'Jueves'
WHEN 'Friday' then 'Viernes'
WHEN 'Saturday' then 'Sábado'
ELSE 'Domingo'
END AS Fechadia,
a.legajo, c.nombres, e.abrv,
CONVERT(CHAR(10), a.fecha, 103) AS Fecha,
f.entrada AS Hora_IN,
a.hora AS ENTRADA,
f.salida AS Hora_out,
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, grupo_horario f
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
AND c.grupo_h = f.codigo
ORDER BY
a.fecha,legajo
我可以这样做吗?
【问题讨论】:
-
Bad habits to kick : using old-style JOINs - 旧式 逗号分隔的表格列表 样式已替换为 ANSI 中的 proper ANSI
JOIN语法-92 SQL 标准(25 多年前),不鼓励使用它
标签: sql-server stored-procedures sql-server-2012 parameter-passing