Podemos tener instrucciones SQL dentro de otras instrucciones SQL. A veces esto simplifica las consultas o nos evita tener que hacer vistas adicionales.
SQL previa, como si fuera una VISTA
WITH nombre AS (SELECT ...)
SELECT .... FROM nombre
SQL en CAMPO CALCULADO y en el WHERE
SELECT campos, (SELECT...) Alias
FROM tablas
WHERE condición AND (SELECT ....)='Valor'
Ejemplo:
SELECT
E.Id,E.CodArticulo,A.Nombre
,(SELECT TOP 1 Proceso FROM TB_DEPO_ELEM_PROC WHERE ID=E.ID ORDER BY FechaHora DESC) UltimoProcesoFROM TB_DEPO_ELEM E
JOIN ARTICULOS A ON E.COD_ARTICULO=A.COD_ARTICULOWHERE E.COD_DEPO_S IS NULL
AND (SELECT TOP 1 Proceso FROM TB_DEPO_ELEM_PROC WHERE ID=E.ID ORDER BY FechaHora DESC)=’Refrigeración’ORDER BY E.ID