on 2011 Mar 05 8:17 PM
estoy tratando de hacer un query que me de todas las descripciones de las facruras de proveedores y empate con su asiento de diario.
El problema que tengo es que si hago una consulta a la tabla OJDT me lanza una cantidad diferente con las condiciones del que el formato de código sea mayo a 600000000 y menos a 700000000, entonces cuando meto las facturas de compra no me da lo mismo, si alguien me puede
SELECT T0.[TransId],
CASE
WHEN T0.Transtype=18 THEN 'FP'
END AS 'Operacion',T0.[RefDate]as 'Fecha Poliza', t0.number as '# Poliza',
T0.[BaseRef] as '# Docto SAP',T4.[AcctName] AS 'Cuenta',
T4.[FormatCode] as '# Cuenta', T3.[lineTotal],case when t0.transtype=18 then 0 end,T2.[Comments],
T3.[LineVat],T3.[Dscription]
FROM [dbo].[OJDT] T0
INNER JOIN [dbo].[OPCH] T2 ON T0.TransId = T2.TransId
INNER JOIN PCH1 T3 ON T2.DocEntry = T3.DocEntry
INNER JOIN OACT T4 ON T3.AcctCode = T4.AcctCode
WHERE t0.refdate>='[%0]' and t0.refdate<='[%1]' and (t4.formatcode>'599999999'
AND T4.FORMATCODE<'700000000') and t0.transtype=18
union all
SELECT T0.[TransId],
case
when t0.transtype=13 then 'FC'
WHEN t0.transtype=14 THEN 'NC clientes'
WHEN T0.TRANSTYPE=18 THEN 'FP'
WHEN T0.TRANSTYPE=19 THEN 'NC Prov'
WHEN T0.TRANSTYPE=24 THEN 'PR'
WHEN t0.transtype=25 THEN 'Dep.'
when t0.transtype=30 THEN 'AS'
WHEN t0.transtype=321 THEN 'GC ID'
When t0.transtype=46 THEN 'PE'
WHEN t0.transtype=59 THEN 'EM'
when t0.transtype=60 THEN 'SM'
END AS 'Operacion'
, T0.[RefDate] as 'Fecha Poliza',t0.number as '# Poliza', t0.baseref as '# Docto SAP',
T2.[AcctName] AS 'Cuenta', T2.[FormatCode] as '# Cuenta',
T1.[Debit], T1.[Credit], T1.[LineMemo],T1.[TotalVat] ,t1.ref3line
FROM [dbo].[OJDT] T0
INNER JOIN [dbo].[JDT1] T1 ON T0.TransId = T1.TransId
INNER JOIN [dbo].[OACT] T2 ON T1.Account = T2.AcctCode
WHERE t0.refdate>='[%0]' and t0.refdate<='[%1]' and (t2.formatcode>'599999999'
AND T2.FORMATCODE<'700000000') and t0.transtype<>18
Yo le agregaria la tabla de facturas con un LEFT OUTER JOIN y con ello, me apareceria el mismo numero de resultados, y donde no haya coincidencia entre la tabla de Polizas y la tabla de facturas, queire decir que ese documento se contabilizo en otra cuenta y habria que revisar.
slds.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
ya se por que me esta dando el resultado, el resultado me lo da por que no filtro las notas de debito de proveedores, pero ahora mi pregunta sería como saber cual es una nota de debito, segun yo el campo CEECflag es la que me la daría, si ustedes saben cual es por favor ayudenme, el tipo de documento es igual el número 18.
oks. gracias.
no. pero si me estan saliendo es por que se van a sumar. les posteo el query con el que estoy comparando la cantidad en debito.
SELECT T0.[TransId],
case
when t0.transtype=13 then 'FC'
WHEN t0.transtype=14 THEN 'NC clientes'
WHEN T0.TRANSTYPE=18 THEN 'FP'
WHEN T0.TRANSTYPE=19 THEN 'NC Prov'
WHEN T0.TRANSTYPE=24 THEN 'PR'
WHEN t0.transtype=25 THEN 'Dep.'
when t0.transtype=30 THEN 'AS'
WHEN t0.transtype=321 THEN 'GC ID'
When t0.transtype=46 THEN 'PE'
WHEN t0.transtype=59 THEN 'EM'
when t0.transtype=60 THEN 'SM'
END AS 'Operacion'
, T0.[RefDate] as 'Fecha Poliza',t0.number as '# Poliza', t0.baseref as '# Docto SAP', T2.[AcctName] AS 'Cuenta', T2.[FormatCode] as '# Cuenta',
T1.[Debit], T1.[Credit], T1.[LineMemo],T1.[TotalVat] ,t1.ref3line
FROM [dbo].[OJDT] T0
INNER JOIN [dbo].[JDT1] T1 ON T0.TransId = T1.TransId
INNER JOIN [dbo].[OACT] T2 ON T1.Account = T2.AcctCode
WHERE t0.refdate>='[%0]' and t0.refdate<='[%1]' and (t2.formatcode>'599999999' AND T2.FORMATCODE<'700000000') and t0.transtype=18
sabes? ya me di cuenta, pero eso no me afecta en gran manera ya que las notas de debito deben sumarse a la factura, entonces por ahi no esta mi problema. segun el contador se me estan duplicando cuentas. pero es lo que yo no entiendo de donde. puse el último query contra el que comparo mi query con factura de proveedores.
Ojala y me puedan ayudar. es que en ojdt jalo todos los transtype =18 eso quiere decir que me traigo notas de debito y facturas de proveedores por ende en el query que hago a ojdt me debería dar lo mismo que de la jalo de opch.
Hola Mary
Corri tu query y no me presento problemas con el rango de cuentas
SELECT T0.[TransId],
CASE
WHEN T0.Transtype=18 THEN 'FP'
END AS 'Operacion',T0.[RefDate]as 'Fecha Poliza', t0.number as '# Poliza',
T0.[BaseRef] as '# Docto SAP',T4.[AcctName] AS 'Cuenta',
T4.[FormatCode] as '# Cuenta', T3.[lineTotal],case when t0.transtype=18 then 0 end,T2.[Comments],
T3.[Dscription]
FROM [dbo].[OJDT] T0
INNER JOIN [dbo].[OPCH] T2 ON T0.TransId = T2.TransId
INNER JOIN PCH1 T3 ON T2.DocEntry = T3.DocEntry
INNER JOIN OACT T4 ON T3.AcctCode = T4.AcctCode
WHERE t0.refdate>='[%0]' and t0.refdate<='[%1]' and t4.FormatCode >= '400000000000000'
AND T4.FORMATCODE <= '599999999999999' and t0.transtype=18
union all
SELECT T0.[TransId],
case
when t0.transtype=13 then 'FC'
WHEN t0.transtype=14 THEN 'NC clientes'
WHEN T0.TRANSTYPE=18 THEN 'FP'
WHEN T0.TRANSTYPE=19 THEN 'NC Prov'
WHEN T0.TRANSTYPE=24 THEN 'PR'
WHEN t0.transtype=25 THEN 'Dep.'
when t0.transtype=30 THEN 'AS'
WHEN t0.transtype=321 THEN 'GC ID'
When t0.transtype=46 THEN 'PE'
WHEN t0.transtype=59 THEN 'EM'
when t0.transtype=60 THEN 'SM'
END AS 'Operacion'
, T0.[RefDate] as 'Fecha Poliza',t0.number as '# Poliza', t0.baseref as '# Docto SAP',
T2.[AcctName] AS 'Cuenta', T2.[FormatCode] as '# Cuenta',
T1.[Debit], T1.[Credit], T1.[LineMemo],t1.ref3line
FROM [dbo].[OJDT] T0
INNER JOIN [dbo].[JDT1] T1 ON T0.TransId = T1.TransId
INNER JOIN [dbo].[OACT] T2 ON T1.Account = T2.AcctCode
WHERE t0.refdate>='[%0]' and t0.refdate<='[%1]' and (t2.FormatCode >= '400000000000000'
AND T2.FORMATCODE <= '599999999999999') and t0.transtype<>18
El campo T1.[TotalVat] lo tuve que eliminar del query.
Saludos
FLR
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
111 | |
8 | |
8 | |
6 | |
6 | |
5 | |
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.