SQL Server - CONSULTA SQL VARIAS TABLAS Y LIMITAR DATOS VINCULADOS

 
Vista:

CONSULTA SQL VARIAS TABLAS Y LIMITAR DATOS VINCULADOS

Publicado por Duilio Berardinelli (1 intervención) el 03/02/2017 15:27:51
Buenos dias grupo

Presento mi problema.

Tengo un a consulta en sql con 6 tablas

ESTA ES LA CONSULTA

SELECT GVA12.FECHA_EMIS as FECHA, GVA12.T_COMP AS 'T/C', GVA12.N_COMP AS NUMERO, GVA12.COD_CLIENT AS CLIENTE, GVA14.RAZON_SOCI AS 'RAZON SOCIAL', GVA14.DOMICILIO, ISNULL(CPA01_1.NOM_PROVEE, '') + ISNULL(CPA01_1.NOM_PROVEE, '')
AS PROVEEDOR, GVA12.PORC_BONIF AS '% BONIF', STA11.COD_ARTICU AS ARTICULO, STA11.COD_BARRA AS BARRA, STA11.SINONIMO, STA11.DESCRIPCIO AS DESCRIPCION, STA11.DESC_ADIC AS 'DESCRIPCION ADICIONAL', STA11.COD_ACTIVI AS ACTIVIDAD, GVA53.COD_DEPOSI AS DEPOSITO,
(CASE WHEN GVA12.T_COMP='N/C' THEN (GVA53.CANTIDAD*-1) ELSE GVA53.CANTIDAD END) AS CANTIDAD,
GVA53.PORC_IVA AS '% IVA',
ROUND(GVA53.PRECIO_PAN / (1 + GVA53.PORC_IVA / 100), 2) AS 'PRECIO NETO',
GVA53.PORC_DTO AS '% DTO',
ROUND(GVA53.PRECIO_NET, 2) AS 'PRECIO C/DTO',
(CASE WHEN GVA12.T_COMP='N/C' THEN (GVA53.IMP_NETO_P*-1) ELSE GVA53.IMP_NETO_P END) AS 'NETO GRAVADO',
(CASE WHEN GVA12.T_COMP='N/C' THEN (GVA53.IMPORTE_EXENTO*-1) ELSE GVA53.IMPORTE_EXENTO END) AS EXENTO,
GVA53.PREC_ULC_L AS 'PRECIO ULT/CPRA',
(CASE WHEN GVA12.T_COMP='N/C' THEN ((GVA53.PREC_ULC_L * GVA53.CANTIDAD)*-1) ELSE (GVA53.PREC_ULC_L * GVA53.CANTIDAD) END) AS 'COSTO VTA'
FROM CPA01 AS CPA01_1 FULL OUTER JOIN
CPA15 AS CPA15_1 RIGHT OUTER JOIN
GVA14 RIGHT OUTER JOIN
GVA12 ON GVA14.COD_CLIENT = GVA12.COD_CLIENT LEFT OUTER JOIN
GVA53 ON GVA12.T_COMP = GVA53.T_COMP AND GVA12.N_COMP = GVA53.N_COMP LEFT OUTER JOIN
STA11 ON GVA53.COD_ARTICU = STA11.COD_ARTICU ON CPA15_1.COD_ARTICU = STA11.COD_ARTICU ON CPA01_1.COD_PROVEE = CPA15_1.COD_PROVEE
WHERE (GVA12.T_COMP = 'FAC' OR
GVA12.T_COMP = 'N/C' OR
GVA12.T_COMP = 'N/D') AND (GVA53.PROMOCION = '0') AND (GVA12.FECHA_EMIS > CONVERT(DATETIME, '2017-01-01 00:00:00', 102)) AND (GVA12.FECHA_EMIS < CONVERT(DATETIME,
'2017-12-31 00:00:00', 102))
ORDER BY GVA12.FECHA_EMIS, GVA12.T_COMP, GVA12.N_COMP



en problema que tengo es que en la union cpa15 y cpa01 que es la ultima union que hago necesito que solo me devuelva 1 solo registro (explicacion) la tabla sta11 de articulos se une a cpa15 que contiene la relacion articulos proveedores, lo que necesito es que solo me muestre en esta union solo el 1º registro encontrado y no todos


(aclaracion) la tabla gva53 que se une con sta11 es la de movimientos de ventas


En este resultado hay 2 registros cuando corresponde solo 1 ya que el duplicado es porque el articulo tiene asociado 2 proveedores

Desde ya muchas gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Isaias
Val: 3.250
Oro
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

CONSULTA SQL VARIAS TABLAS Y LIMITAR DATOS VINCULADOS

Publicado por Isaias (4558 intervenciones) el 03/02/2017 17:27:41
Separa tus consultas, cpa15 y cpa01 deben ir por separado de tu consulta total
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Manuel
Val: 9
Ha aumentado su posición en 9 puestos en SQL Server (en relación al último mes)
Gráfica de SQL Server

CONSULTA SQL VARIAS TABLAS Y LIMITAR DATOS VINCULADOS

Publicado por Manuel (5 intervenciones) el 10/02/2017 19:17:54
Si de una consulta solo necesitas un solo resultado, pues solo tienes que aplicar TOP 1 y así solo te devolverá el primer registro.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar