Buenas. Si ejecuto el procedimiento almacenado con los parámetros por defecto me debería devolver todos los registros de la tabla socios aunque el campo IDProvincia sea nulo. Sin embargo sólo me devuelve los registros en los que el campo IDProvincia no es nulo
.
Código SQL:
Ver originalCREATE PROCEDURE [PA_Socios]
(
@numSocio INT = 0,
@apellido VARCHAR(50) = '',
@provincia CHAR(2) = ''
)
AS
BEGIN
SELECT
s.numero_socio AS NumSocio,
s.nombre_socio AS Nombre,
s.apellido1_socio AS Apellido1,
s.apellido2_socio AS Apellido2,
p.Provincia
FROM socios AS s
LEFT JOIN provincias AS p ON s.IDProvincia = p.CP
WHERE
s.numero_socio = CASE WHEN @numSocio = 0 THEN c.numero_socio ELSE @numSocio END
AND
(s.apellido1_socioLIKE '%'+@apellido+'%' OR s.apellido2_socio LIKE '%'+@apellido+'%')
AND
(s.IDProvincia = CASE WHEN @provincia = '' THEN s.IDProvincia ELSE @provincia END)
ORDER BY s.apellido1_socio, s.apellido2_socio, s.nombre_socio
END
GO
EXEC PA_Socios
Gracias y un saludo.