0% encontró este documento útil (0 votos)
14 vistas4 páginas

SQL Ejemplos

El documento detalla diversas consultas SQL, incluyendo el uso de CASE para condiciones múltiples y subconsultas para obtener datos de tablas relacionadas. Se menciona la inclusión de tablas temporales y la concatenación de columnas de texto, así como la utilización de uniones externas completas para combinar datos de diferentes tablas. Además, se destaca la sugerencia de usar NOLOCK para realizar lecturas sin bloqueos en la base de datos.
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
14 vistas4 páginas

SQL Ejemplos

El documento detalla diversas consultas SQL, incluyendo el uso de CASE para condiciones múltiples y subconsultas para obtener datos de tablas relacionadas. Se menciona la inclusión de tablas temporales y la concatenación de columnas de texto, así como la utilización de uniones externas completas para combinar datos de diferentes tablas. Además, se destaca la sugerencia de usar NOLOCK para realizar lecturas sin bloqueos en la base de datos.
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

Sub consulta dentro de caseºº

CASE WHEN GVA12.NRO_SUCURS <> 0 THEN GVA12.NRO_SUCURS ELSE (SELECT


SUC.NRO_SUCURSAL FROM EMPRESA JOIN SUCURSAL SUC ON (EMPRESA.ID_SUCURSAL =
SUC.ID_SUCURSAL)) END AS NRO_SUCURS

Inclusión de una tabla temporal llamada TMP relacionada con la tabla GVA14.COD_CLIENT =
TMP.COD_CLIENT – esto se usa para hacer sumas apuntadas a la tabla temporal

FROM

(SELECT T_COMP, N_COMP, FECHA_EMIS, COD_CLIENT, IMPORTE, ID_NEXO_COBRANZAS_PAGO


FROM GVA12) AS TMP LEFT JOIN GVA14 ON GVA14.COD_CLIENT = TMP.COD_CLIENT

Se usa para concatenar 2 columnas de texto

select CONCAT(razon_soci, ',' ,nom_com) as cliente from gva14

CASE CON VARIAS CONDICIONES DE DIFERENTES BASES


SELECT TOP 100 PERCENT

CASE WHEN (P.SALDO_CC <=0) AND (S.SALDO_CC <=0) AND (D.SALDO_CC <=0)
THEN "LAS 3"
WHEN (P.SALDO_CC <=0) AND (S.SALDO_CC <=0) AND (D.SALDO_CC >0) THEN
"PLAN Y SIME"
WHEN (P.SALDO_CC <=0) AND (S.SALDO_CC >0) AND (D.SALDO_CC <=0) THEN
"PLAN Y DSI"
WHEN (P.SALDO_CC >0) AND (S.SALDO_CC <=0) AND (D.SALDO_CC <=0) THEN
"SIME Y DSI"
WHEN (P.SALDO_CC >0) AND (S.SALDO_CC > 0) AND (D.SALDO_CC <=0) THEN "DSI"
WHEN (P.SALDO_CC >0) AND (S.SALDO_CC <=0) AND (D.SALDO_CC >0) THEN "SIME"
WHEN (P.SALDO_CC <=0) AND (S.SALDO_CC >0) AND (D.SALDO_CC >0) THEN
"PLAN" ELSE "" END AS [SALDO<=0],

FROM GVA14 AS P LEFT JOIN [2018_SIME].DBO.GVA14 AS S ON P.COD_CLIENT=


S.COD_CLIENT
LEFT JOIN [2018_DSI].DBO.GVA14 AS D ON P.COD_CLIENT= D.COD_CLIENT

"// recibos cobrados //"


SELECT
a.cod_client, a.t_comp,a.n_comp, (importe -cobrado) as [a cuenta]
FROM GVA12 AS A
JOIN (SELECT t_comp_can, n_comp_can, sum(imp_can_un) as [cobrado] FROM GVA07 where
t_comp_can ="REC" group by t_comp_can, n_comp_can) AS TMP ON TMP.T_COMP_can =
a.T_COMP AND TMP.N_COMP_can = a.N_COMP
LEFT JOIN GVA07 as B ON TMP.T_COMP_can = B.T_COMP AND TMP.N_COMP_can =
B.N_COMP
where (A.estado_UNI = "CTA") and a.cod_client = "2232"
"// recibos cobrados //"

Agregar sub rutinas

SELECT
GVA21.COD_CLIENT AS [Cód. cliente] ,
GVA03.COD_ARTICU AS [Cód. Artículo] ,
ISNULL(GVA45.[DESC], [Link]) AS [Descripción] ,
SUM(CASE WHEN [Link] IN (3,4,5) THEN 0 ELSE GVA03.CANT_PEN_D
END) AS [Cantidad Pendiente de Descargar]
FROM
GVA03 (NOLOCK) JOIN GVA21 ON GVA03.NRO_PEDIDO =GVA21.NRO_PEDIDO and
GVA03.TALON_PED=GVA21.TALON_PED
LEFT JOIN GVA16 ON 1=1
LEFT JOIN GVA10 ON GVA10.NRO_DE_LIS = GVA21.N_Lista
LEFT JOIN (SELECT TALON_PED, NRO_PEDIDO, MIN(FEC_ENTREG) AS FECHA_MINIMA
FROM GVA126 GROUP BY TALON_PED, NRO_PEDIDO ) AS TEMP ON
GVA21.TALON_PED = TEMP.TALON_PED AND GVA21.NRO_PEDIDO =
TEMP.NRO_PEDIDO
LEFT JOIN (SELECT GVA21.TALON_PED, GVA21.NRO_PEDIDO, SUM (((CASE
GVA10.MON_CTE WHEN 1 THEN [Link] ELSE ([Link] * [Link])
END ) * (1 - ([Link]) / 100)) * (GVA03.Cant_Pen_F))
TOTAL_SIN_DESCUENTO FROM GVA21 INNER JOIN GVA10 ON
GVA21.N_Lista = GVA10.Nro_de_Lis INNER JOIN GVA03 ON (GVA21.TALON_PED
= GVA03.TALON_PED AND GVA21.NRO_PEDIDO = GVA03.NRO_PEDIDO) WHERE
(GVA03.RENGL_PADR = 0) GROUP BY GVA21.TALON_PED, GVA21.NRO_PEDIDO)
AS TEMP2 ON GVA21.TALON_PED = TEMP2.TALON_PED AND
GVA21.NRO_PEDIDO = TEMP2.NRO_PEDIDO
LEFT JOIN GVA43 (NOLOCK) ON GVA21.TALON_PED = [Link]
LEFT JOIN STA16 ON 1=1
FULL OUTER JOIN STA11 (NOLOCK) ON
GVA03.COD_ARTICU = STA11.COD_ARTICU
LEFT JOIN GVA45 (NOLOCK) ON
[Link] = GVA03.TALON_PED AND GVA45.N_COMP = GVA03.NRO_PEDIDO
AND GVA45.N_RENGLON = GVA03.N_RENGLON
LEFT JOIN DIRECCION_ENTREGA ON DIRECCION_ENTREGA.ID_DIRECCION_ENTREGA =
GVA21.ID_DIRECCION_ENTREGA
Unión de tablas

FULL OUTER JOIN STA11 (NOLOCK) ON GVA03.COD_ARTICU = STA11.COD_ARTICU

La sugerencia de tabla NOLOCK (o su equivalente READUNCOMMITTED) te permite


realizar lecturas de datos aunque éstos estén bloqueados por instrucciones de
actualización de datos

l FULL OUTER JOIN palabra clave todos los registros de retorno cuando hay
un partido en cualquiera izquierdo (tabla 1) o registros (Tabla 2) tabla de la
derecha.

Nota: combinación externa completa pueden devolver potencialmente muy


grandes conjuntos de resultados!

Combinación externa completa Sintaxis


SELECT column_name(s)
FROM table1
FULL OUTER JOIN table2 ON table1.column_name = [Link]
_name;

También podría gustarte