sofas - Seleccione de union tsql
sofas fama precios (2)
¿Es posible seleccionar del resultado de una unión? Por ejemplo estoy tratando de hacer algo como:
SELECT A
FROM
(
SELECT A, B FROM TableA
UNION
SELECT A, B FROM TableB
)
WHERE B > ''some value''
¿Me estoy perdiendo algo o haciendo una suposición sobre cómo funciona esto? Estoy usando MSSQL 2005, por lo que cualquier solución deberá ajustarse a lo que puedo hacer allí.
Da el nombre de Alias sin el cual recibirás
Msg 156, Level 15, State 1, Line 21
Incorrect syntax near the keyword ''WHERE''.
Probar esto (Dar nombre de alias)
DECLARE @TableA Table(A int, B int)
DECLARE @TableB Table(A int, B int)
INSERT INTO @TableA VALUES(1,1)
INSERT INTO @TableA VALUES(1,2)
INSERT INTO @TableA VALUES(1,3)
INSERT INTO @TableA VALUES(1,4)
INSERT INTO @TableB VALUES(2,1)
INSERT INTO @TableB VALUES(2,2)
INSERT INTO @TableB VALUES(2,3)
INSERT INTO @TableB VALUES(2,4)
SELECT A
FROM
(
SELECT A, B FROM @TableA
UNION
SELECT A, B FROM @TableB
)X -- here X is table Alias
WHERE B > 0
Resultado
UNA
1
1
1
1
2
2
2
2
Deberías darle un alias a tu tabla. Así que prueba esto:
SELECT A
FROM
(
SELECT A, B FROM TableA
UNION
SELECT A, B FROM TableB
) AS tbl
WHERE B > ''some value''