on 07-12-2012 6:15 PM
Amigos necesito su ayuda, necesito unos Querys basicos que yo me imagino puedo hacer sin mayor problema. Necesito una lista de los proveedores a los que les debemos y otro en el que encuentre a los clientes que nos deben pero por Vendedor, osea al vendedor 1 le debe el cliente 2 y la cantidad es 1000.
En serio me ayudaria bastante si me pudieran indicar de que tablas puedo obtener estos resultados.
Saludos.
Omar, para saber la descripción de cada tabla ve a
Herramientas --> Consultas --> generador de consultas --> presiona TAB y apareceran las tablas con su descripcion. Como dato en SAP los proveedores y clientes se denominan Socios de negocios.
Para obtener el informe por empleado de ventas ve a la ruta.
Socios de Negocios --> Informes de socio de negocios --> Antigüedad. Este lo agrupas por Empleado de ventas.
Espero te sea de utilidad.
Saludos
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hola Felipe.
esto es exactamente lo que buscaba, pero no habria forma de hacerlo con query, lo que pasa es que debo de hacerlo en una hoja de excel y cada vez que abran el archivo se debe refresacar, esto es facil, ya lo he hecho con otras tablas, lo conecto mediante un odbc.
O si existe alguna forma de ver el query de ese reporte. En serio eso seria genial. Gracias.
Hola
Para tu suerte ya tenia hecho el query
Pruebalo en SAP
DECLARE @VAR INT, @FECHAFIN DATETIME
SET @VAR = (SELECT TOP 1 A.TransId FROM [dbo].[JDT1] A WHERE A.RefDate <='[%0]')
SET @FECHAFIN = '[%0]'
SELECT
CASE T1.TransType
WHEN '13' THEN (SELECT X.SlpName FROM OSLP X INNER JOIN OINV Y ON Y.SlpCode=X.SlpCode WHERE Y.TransId = T1.TransId)
WHEN '14' THEN (SELECT X.SlpName FROM OSLP X INNER JOIN ORIN Y ON Y.SlpCode=X.SlpCode WHERE Y.TransId = T1.TransId)
ELSE ''
END'Vendedor', T0.CardCode, T0.CardName, T1.TransId'Asiento',
CASE T1.TransType
WHEN 13 THEN 'Venta'
WHEN 14 THEN 'N.Credito'
WHEN 24 THEN 'Abono'
WHEN 30 THEN 'Traspaso'
END 'Comprobante',
T4.BaseRef 'Doc Interno', T4.Folionum'Folio', T1.TaxDate, T1.DueDate, DATEDIFF(DAY,@FECHAFIN,T1.DueDate)'Días Cred.',
CASE T1.TransType
WHEN '13' THEN (SELECT Y.PymntGroup FROM OINV X INNER JOIN OCTG Y ON Y.GroupNum=X.GroupNum WHERE X.TransId = T1.TransId)
WHEN '14' THEN (SELECT Y.PymntGroup FROM ORIN X INNER JOIN OCTG Y ON Y.GroupNum=X.GroupNum WHERE X.TransId = T1.TransId)
ELSE ''
END'Cond.Pago',
CASE
WHEN T3.DebHab = 'D' THEN (T1.Debit-T1.Credit-T3.ReconSum)
WHEN T3.DebHab = 'C' THEN (T1.Debit-T1.Credit+T3.ReconSum)
ELSE (T1.Debit-T1.Credit)
END 'Saldo',
CASE
WHEN DATEDIFF(DAY,@FECHAFIN,T1.DueDate) > 0 and T3.DebHab = 'D' then T1.Debit-T1.Credit-T3.ReconSum
WHEN DATEDIFF(DAY,@FECHAFIN,T1.DueDate) > 0 and T3.DebHab = 'C' then T1.Debit-T1.Credit+T3.ReconSum
WHEN DATEDIFF(DAY,@FECHAFIN,T1.DueDate) > 0 then (T1.Debit-T1.Credit) end 'Por vencer',
CASE
WHEN DATEDIFF(DAY,@FECHAFIN,T1.DueDate) <= 0 AND DATEDIFF(DAY,@FECHAFIN,T1.DueDate) >= -30 and T3.DebHab = 'D' then T1.Debit-T1.Credit-T3.ReconSum
WHEN DATEDIFF(DAY,@FECHAFIN,T1.DueDate) <= 0 AND DATEDIFF(DAY,@FECHAFIN,T1.DueDate) >= -30 and T3.DebHab = 'C' then T1.Debit-T1.Credit+T3.ReconSum
WHEN DATEDIFF(DAY,@FECHAFIN,T1.DueDate) <= 0 AND DATEDIFF(DAY,@FECHAFIN,T1.DueDate) >= -30 then (T1.Debit-T1.Credit) end '0-30 dias',
CASE
WHEN DATEDIFF(DAY,@FECHAFIN,T1.DueDate) <= -31 AND DATEDIFF(DAY,@FECHAFIN,T1.DueDate) >= -60 and T3.DebHab = 'D' then T1.Debit-T1.Credit-T3.ReconSum
WHEN DATEDIFF(DAY,@FECHAFIN,T1.DueDate) <= -31 AND DATEDIFF(DAY,@FECHAFIN,T1.DueDate) >= -60 and T3.DebHab = 'C' then T1.Debit-T1.Credit+T3.ReconSum
WHEN DATEDIFF(DAY,@FECHAFIN,T1.DueDate) <= -31 AND DATEDIFF(DAY,@FECHAFIN,T1.DueDate) >= -60 then (T1.Debit-T1.Credit) end '31-60 dias',
CASE
WHEN DATEDIFF(DAY,@FECHAFIN,T1.DueDate) <= -61 AND DATEDIFF(DAY,@FECHAFIN,T1.DueDate) >= -90 and T3.DebHab = 'D' then T1.Debit-T1.Credit-T3.ReconSum
WHEN DATEDIFF(DAY,@FECHAFIN,T1.DueDate) <= -61 AND DATEDIFF(DAY,@FECHAFIN,T1.DueDate) >= -90 and T3.DebHab = 'C' then T1.Debit-T1.Credit+T3.ReconSum
WHEN DATEDIFF(DAY,@FECHAFIN,T1.DueDate) <= -61 AND DATEDIFF(DAY,@FECHAFIN,T1.DueDate) >= -90 then (T1.Debit-T1.Credit) end '61-90 dias',
CASE
WHEN DATEDIFF(DAY,@FECHAFIN,T1.DueDate) <= -91 AND DATEDIFF(DAY,@FECHAFIN,T1.DueDate) >= -120 and T3.DebHab = 'D' then T1.Debit-T1.Credit-T3.ReconSum
WHEN DATEDIFF(DAY,@FECHAFIN,T1.DueDate) <= -91 AND DATEDIFF(DAY,@FECHAFIN,T1.DueDate) >= -120 and T3.DebHab = 'C' then T1.Debit-T1.Credit+T3.ReconSum
WHEN DATEDIFF(DAY,@FECHAFIN,T1.DueDate) <= -91 AND DATEDIFF(DAY,@FECHAFIN,T1.DueDate) >= -120 then (T1.Debit-T1.Credit) end '91-120 dias',
CASE
WHEN DATEDIFF(DAY,@FECHAFIN,T1.DueDate) < -120 and T3.DebHab = 'D' then T1.Debit-T1.Credit-T3.ReconSum
WHEN DATEDIFF(DAY,@FECHAFIN,T1.DueDate) < -120 and T3.DebHab = 'C' then T1.Debit-T1.Credit+T3.ReconSum
WHEN DATEDIFF(DAY,@FECHAFIN,T1.DueDate) < -120 then (T1.Debit-T1.Credit) end '+120 dias',
T1.LineMemo'Comentarios'
FROM dbo.OCRD T0
INNER JOIN dbo.JDT1 T1 ON T1.ShortName = T0.CardCode
INNER JOIN dbo.OACT T2 ON T2.AcctCode = T1.Account
INNER JOIN dbo.OJDT T4 ON T4.TransId = T1.TransId
LEFT JOIN (SELECT X0.ShortName 'SN', X0.TransId 'TransId', SUM(X0.ReconSum)'ReconSum', X0.IsCredit 'DebHab', X0.TransRowId 'Linea'
FROM dbo.ITR1 X0
INNER JOIN dbo.OITR X1 ON X1.ReconNum = X0.ReconNum
WHERE X1.ReconDate <= @FECHAFIN AND X1.CancelAbs = ''
GROUP BY X0.ShortName, X0.TransId, X0.IsCredit, X0.TransRowId) T3 ON T3.TransId = T1.TransId AND T3.SN = T1.ShortName AND T3.Linea = T1.Line_ID
WHERE T0.CardType = 'C' AND T1.RefDate <= @FECHAFIN /*AND T2.AcctCode = ''*/ AND T1.TransType NOT IN ('-2','-3') AND
(CASE
WHEN T3.DebHab = 'D' THEN (T1.Debit-T1.Credit-T3.ReconSum)
WHEN T3.DebHab = 'C' THEN (T1.Debit-T1.Credit+T3.ReconSum)
ELSE (T1.Debit-T1.Credit)
END) != '0'
ORDER BY T0.CardCode, T1.TransId
FOR BROWSE
Saludos
Omar:
Si entiendo bien necesitas 2 queryes para saber cuanto te debe cada cliente o proveedor por vendedor o encargado de compra respectivamente.
Lata tabla ocrd es la tabla de socios de negocios y con el campo cardtype filtras si es cliente o proveedor.
Si fuera sin vendedor seria bastante simple consultando las tablas de asientos contables ojdt y jdt1,.
Para hacer lo que tunecesitas tienes que explicarte un poco mas para saber que tipo de documentos quieres abarcar, ya que si quieres la informacion de clientes estan las facturas, pagos de clientes que no estan reconciliados además el sietema te permite hacer asientos manuales a un socio de negocios en particular.
En el caso de clientes si solo necesitas facturas de clientes la query debiera ser algo como:
select * from ojdt t0 inner join jdt1 t1 on t0.transid=t1.transid
inner join ocrd t2 on t1.shortname=t2.cardcode and cardtype='C'
inner join oinv t3 on t1.transtype=13 and t1.createdby=t3.docentry
where t1.balduedeb <> 0 ot t1.balduecred <> 0
En el select tienes que poner los campos que te interesen
Esta query te serviria para empezar, pero todo depende de todo lo que quieras reflejar
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hola
Cheque la tabla OCRD campo balance.
Christian
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.