Hola, quiero crear una consulta que haga lo siguiente. Cuando se selecciona el parámetro 25, solo ejecuta la parte A de la consulta, si se selecciona cualquier otro número, ejecute las consultas de selección de la Tabla A y B.

Ejemplo a continuación:

DECLARE @Type varchar (200)

select * from 

(SELECT sort_code FROM dbo.Test 1
 WHERE FUNDING_YEAR = 26)



union
(SELECT sort_code FROM dbo.Test 2
 WHERE FUNDING_YEAR = 26)
Where case when @Type = 25 then select * from table2 else table 1
-1
Bains121 10 dic. 2019 a las 17:05

2 respuestas

Solo necesita hacer referencia a la variable en la cláusula WHERE

SELECT *
FROM TableA
WHERE @Type = 25

UNION

SELECT *
FROM TableB

La consulta anterior siempre seleccionará todo en TableB y solo seleccionará todo en TableA cuando la variable sea igual a 25.

0
BJones 10 dic. 2019 a las 15:34

Como está utilizando SSRS, lo que haría sería escribir la consulta para devolver todas las filas y luego aplicar un filtro en el informe SSRS cuando el parámetro sea 25. No pasaría un valor de parámetro al lado de SQL a menos que sea reduce el tiempo de ejecución de la consulta.

(Hubiera puesto esto en un comentario).

0
Fabucci 10 dic. 2019 a las 15:44