cancel
Showing results for 
Search instead for 
Did you mean: 

Query sales

former_member299313
Participant
0 Kudos

Estimados todos espero se encuentren bien, para pedir ayuda de su gran conocimiento les comento que tengo un reporte de ventas del cual necesito agregar dos campos de las tablas de OSLP y OHEM en el reporte jala el histórico del documento de ventas pero deseo que también me jale el campo actual ejemplo: en el documento de ventas si al cliente snmx0001 le generé uno con fecha 01-01-2017 y tenia como vendedor a vmx100 pedro perez si en mes de febrero genero otro documento de ventas pero si le cambie el asesor de ventas vmx105 juan perez al mismo socio de negocios snmx0001 quiero que si saco un reporte con los 2 meses enero y febrero me jale el vendedor actual (VMX105 JUAN PEREZ).

Set Language spanish

SELECT T0.[CardCode] AS 'Código SN', T0.[CardName] AS 'Socio de Negocio', T0.[DocDate], T0.[DocDueDate], T0.[CreateDate], DateName(m, T0.[CreateDate]) AS 'Mes', DateName(year, T0.[CreateDate]) AS 'Año', 'FACTURA' as Documento, T0.[DocNum], T1.[U_Sucursal] AS 'Sucursal', T2.[ItemCode] AS 'Código de Producto', T2.[Dscription] AS 'Nombre del Producto', T2.[Quantity] AS 'Cantidad', T2.[Price] AS 'Precio U', T2.[LineTotal], T2.[GrossBuyPr] AS 'Costo', T3.[U_Factor] AS 'Factor de Conversión', T4.[SlpName] AS 'Ruta', (T5.[firstName] +' '+ T5.[lastName])AS 'Nombre de Vendedor', T4.[U_SEGMENTO] AS 'Segmento', T3.[U_Grup] AS 'LOB', T3.[U_Clasif] AS 'Clasificación', T3.[U_Marca] AS 'Marca', (T2.[Quantity] * T3.[U_Factor]) as Litros_Piezas, T2.[LineTotal] * (1-(T0.DiscPrcnt/100)) as 'Importe total', T6.[PymntGroup] AS 'Condición de Pago', T0.[DiscPrcnt] AS '% De Descuento', T0.[Comments], T1.[County] AS 'Municipio', T1.[State1] AS 'Estado', T1.[ZipCode] AS 'Código Postal' FROM OINV T0 INNER JOIN OCRD T1 ON T0.CardCode = T1.CardCode INNER JOIN INV1 T2 ON T0.DocEntry = T2.DocEntry INNER JOIN OITM T3 ON T2.ItemCode = T3.ItemCode INNER JOIN OSLP T4 ON T0.SlpCode = T4.SlpCode INNER JOIN OHEM T5 ON T0.OwnerCode = T5.empID INNER JOIN OCTG T6 ON T0.GroupNum = T6.GroupNum where T0.[CreateDate] between [%0] and [%1] Union All SELECT T0.[CardCode], T0.[CardName], T0.[DocDate], T0.[DocDueDate], T0.[CreateDate], DateName(m, T0.[CreateDate]) AS 'Mes', DateName(year, T0.[CreateDate]) AS 'Año', 'NC', T0.[DocNum], T1.[U_Sucursal], T2.[ItemCode], T2.[Dscription], T2.[Quantity] * -1, T2.[Price], T2.[LineTotal] * -1, T2.[GrossBuyPr], T3.[U_Factor], T4.[SlpName], (T5.[firstName] +' '+ T5.[lastName]), T4.[U_SEGMENTO], T3.[U_Grup], T3.[U_Clasif], T3.[U_Marca], (T2.[Quantity] * T3.[U_Factor]) * -1 as Litros_Piezas, T2.[LineTotal] * -1 * (1-(T0.DiscPrcnt/100)) as 'Importe total', T6.[PymntGroup], T0.[DiscPrcnt], T0.[Comments], T1.[County], T1.[State1], T1.[ZipCode] FROM [dbo].[ORIN] T0 INNER JOIN [dbo].[OCRD] T1 ON T0.CardCode = T1.CardCode INNER JOIN [dbo].[RIN1] T2 ON T0.DocEntry = T2.DocEntry INNER JOIN [dbo].[OITM] T3 ON T2.ItemCode = T3.ItemCode INNER JOIN [dbo].[OSLP] T4 ON T0.SlpCode = T4.SlpCode INNER JOIN [dbo].[OHEM] T5 ON T0.OwnerCode = T5.empID INNER JOIN [dbo].[OCTG] T6 ON T0.GroupNum = T6.GroupNum where T0.[CreateDate] between [%0] and [%1]

De antemano agradezco mucho de su gran ayuda y apoyo..

Saludos.

Accepted Solutions (0)

Answers (6)

Answers (6)

gonzalogomez
Active Contributor
0 Kudos

A ver...que me estás liando.

Por un lado tienes empleados del departamento de ventas que es la tabla OSLP y ya lo tienes resuelto.

La tabla OHEM es la de Recursos Humanos, para que te devuelva algo en la tabla OCRD o en el IC en sus datos tienes que tener cubierto el campo técnico.

Si ese valor de empleado lo tienes en la tabla OSLP, no tienes que hacer join con OHEM, simplemente tienes que seleccionar el campo Memo que es el que se visualiza que estás usando de la tabla OSLP o sea de la T4 que ya tienes y no de OHEM

former_member299313
Participant
0 Kudos

Hola Gonzalo en efecto tal cual como dices el reporte jalaba el comercial desde documento, con la modificación del join T1.SlpCode=T4.SlpCode ya lo jala desde OCRD Datos Maestros del cliente, así mismo también como dices mi reporte esta jalando desde la tabla de OHEM los Datos maestros del empleado el nombre y apellido (owner), y de donde quiero que jale los datos es de la tabla de OSLP tal cual como la imagen que anexe, con el join que me envías me aparece que no se encontró ningún dato: FROM OINV T0 INNER JOIN OCRD T1 ON T0.CardCode = T1.CardCode INNER JOIN INV1 T2 ON T0.DocEntry = T2.DocEntry INNER JOIN OITM T3 ON T2.ItemCode = T3.ItemCode INNER JOIN OSLP T4 ON T1.SlpCode = T4.SlpCode INNER JOIN OHEM T5 ON T1.DfTcnician = T5.empID

mil gracias por tu apoyo.

Saludos

gonzalogomez
Active Contributor
0 Kudos

A ver... yo el cambio que te propongo según entendí es que el comercial es el empleado del departamentos de ventas, así te saldría el comercial del cliente y no el comercial del documento.

Lo que tú ahora dices es el empleado del modulo de recursos humanos que lo vinculas o estás sacando del documento. Para lograr lo que pretendes tienes que tener alimentado el dato de técnico en la tabla OCRD el campo es DfTcnician y leer el nombre a través del técnico de la tabla OCRD y no del owner del documento. O sea la join tienes que hacerla desde OCRD a OHEM y el campo DfTcnician=empID

o sea:

INNER JOIN OHEM T5 ON T1.DfTcnician = T5.empID
former_member299313
Participant
0 Kudos

me aparece el nombre y apellido del cual se hizo la primer venta, esos campos son de la tabla de OHEM firstname y lastname, y este es el erro porque debería de jalar el nombre del siguiente campo de la imagen

estos nombres estan ligados desde datos maestros del empleado

former_member299313
Participant
0 Kudos

Mil gracias por tu respuesta Gonzalo modifique el campo como lo indicas pero aún me sale el histórico.

gonzalogomez
Active Contributor
0 Kudos

Entonces el slpcode lo tienes que coger la tabla OCRD cuando haces INNER JOIN OSLP T4 ON T0.SlpCode = T4.SlpCode

debería ser T1.SlpCode=T4.SlpCode