02-09-2017 12:15 AM - edited 02-03-2024 6:12 PM
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.
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
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Mil gracias por tu respuesta Gonzalo modifique el campo como lo indicas pero aún me sale el histórico.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
99 | |
11 | |
11 | |
6 | |
6 | |
4 | |
4 | |
3 | |
3 | |
3 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.