2012-09-17 10 views
6

Paso dos parámetros, es decir, @AccountId y @key. Quiero mostrar todos los valores presentes en la base de datos para @AccountId y @key cuando no hay valores en los parámetros, es decir, @AccountId y @key. Quiero hacer esto para el mismo conjunto de datos. ¿Es esto posible o tengo crear diferentes conjuntos de datos?¿Cómo pasar todos los valores de la tabla en ssrs cuando no hay ningún valor en los parámetros?

La consulta que estoy usando es:

CREATE PROCEDURE [dbo].[GetDenyList] 
@AccountId nvarchar(100), 
@key nvarchar(400) 
AS 
select New_AccountId AS 'AccountId/Key', New_Description AS 'Reason',CreatedOn AS 'Date' 
    from abc.dbo.New_keydenylist 
where New_AccountId is not null 
    AND @AccountId = New_AccountId 
union all 
select new_key AS 'AccountId/Key', New_Description AS 'Reason',CreatedOn AS 'Date' 
    from abc.dbo.New_keydenylist 
where New_key is not null 
    and @Key=New_key 

Respuesta

0

Si entiendo bien su pregunta, usted tiene que utilizar cualquier predicado que siempre se evalúa a cierto independientemente de los valores de los parámetros, pasaron a la cláusula WHERE. Por ejemplo WHERE 1 = 1:

WHERE 1 = 1 
AND (@AccountId IS NOT NULL OR AccountId = @AccountId) 

Lo mismo con @key parámetro:

WHERE 1 = 1 
AND (@key IS NOT NULL OR New_key = @key) 

Si los dos parámetros @key y @AccountId son ambos NULL o uno de ellos, a continuación, la cláusula WHERE todavía ser válido y devolver todas las fila como no se presentó.

+0

Quiero que todos los valores deben mostrarse sólo cuando no hay entrada de los parámetros y los valores correctos se debe mostrar para los parámetros de la entrada –

+0

@ user1677027, Esto mostrará todos los valores cuando no haya entrada en los parámetros, es decir, si los dos parámetros son 'NULL' ¿no es eso lo que estás buscando? ¿Puedes aclarar más? –

+0

Los valores están llegando pero los parámetros no están dando los resultados correctos. Siempre da todos los valores cuando seleccionamos el parámetro –

0

comprobar NULL o equivalencia en el parámetro:

AND ((@AccountId IS NULL) OR (@AccountId = New_AccountId)) 
Cuestiones relacionadas