on 11-13-2013 4:54 PM
Necesito sacar un reporte mensual de ventas(facturas). Lo que intento es sacar todas las facturas en un periodo de tiempo restandole las Notas de credito.
Bosquejare un ejemplo
Mayo 2013
Numero | Fecha | Socio de negocios | Numero de documento | Total de documento | Artculo 1 cant/Importe | Artculo 2 cant/desc | Artculo 3 cant/desc | IVA | IVA Retenido | |
---|---|---|---|---|---|---|---|---|---|---|
1 | 01/05/2013 | El patito S.A. | 2315 | $1000 | 1-100 | 2 - 500 | ||||
Si lo que necesitas son los monto por mes te podría ayudar lo siguiente:
Declare @mes INT= datepart(month,getdate())
DECLARE @CREDITO money = (SELECT SUM(ORIN.DocTotal-ORIN.VatSum) FROM ORIN WHERE DATEPART(mm, ORIN.DocDate) = @mes )
DECLARE @FACTURAS money = (SELECT SUM((OINV.DocTotal-OInv.VatSum) ) FROM OINV WHERE DATEPART(mm, OINV.DocDate) = @mes )
SELECT (@FACTURAS - @CREDITO) AS 'Total Mensual'
El reporte de facturas no veo como quieres que reste las notas de crédito simplemente que no las muestre las facturas con nota de crédito?
SELECT distinct T0.[DocDate], T5.[DocEntry]as '#Oferta de venta', T0.[DocNum]as '#Factura de venta',
T0.[CardName], T1.[CardFName],T0.[DocTotal]
FROM OINV T0 INNER JOIN OCRD T1 ON T0.CardCode = T1.CardCode INNER JOIN INV1 T2 ON T0.DocEntry = T2.DocEntry
INNER JOIN DLN1 T3 ON T1.CardCode = T3.BaseCard INNER JOIN RDR1 T4 ON T1.CardCode
= T4.BaseCard INNER JOIN QUT1 T5 ON T1.CardCode = T5.BaseCard
WHERE (T3.[TrgetEntry]= T2.[DocEntry] and T4.[TrgetEntry] = T3.[DocEntry] and T5.[TrgetEntry] = T4.[DocEntry])and T2.[TargetType] != '14'
Yo uso esta consulta para mostrar las ofertas de ventas que tienen una factura, pero a su vez descarto las que cuentan con nota de crédito.
Saludos
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.
Creo que el problema lo tienes en el between prueba con
WHERE (T0.[DocDate] >= [%0] and (T0.[DocDate] <= [%1]) AND T0.[CardCode] not in ('C3167', 'C3145', 'C0203') AND T4.[SlpName] = [%2]
Prueba con varios formatos de fecha. 15/05/2013 o 05/15/2013 o 2013/05/15 y hasta cambia el / por -
saludos hay nos avisas
buenas eh echo uno que te tae lo que deseas pero por vendedor lo cores si es lo que deseas te lo dejo hace lo mismo las ventas del mes menos las devoluciones de la misam si tiene y me dejas saber si te funciono :
select T0.CardCode,T0.CardName,T0.DocNum,T3.PymntGroup,T0.DocDate,T4.SlpName,T6.descript 'zona',T7.GroupName 'Tipo Cliente',T8.ListName 'Lista De Precio',T0.DocTotal-T0.VatSum 'brutas'
,(select isnull(SUM(T1.DocTotal - t1.VatSum),0) from ORIN as T1 where T1.TransId = T2.TransId)as Total
from OINV T0
left join OJDT as T2 on convert(varchar,T0.DocNum )= T2.Ref2
INNER JOIN OCTG T3 ON T0.GroupNum = T3.GroupNum
INNER JOIN OSLP T4 ON T0.SlpCode = T4.SlpCode
INNER JOIN OCRD T5 ON T0.CardCode = T5.CardCode
LEFT JOIN OTER T6 ON T5.Territory = T6.territryID
INNER JOIN OCRG T7 ON T5.GroupCode = T7.GroupCode
INNER JOIN OPLN T8 ON T5.ListNum = T8.ListNum
WHERE (T0.[DocDate] BETWEEN [%0] and [%1]) AND T0.[CardCode] not in ('C3167', 'C3145', 'C0203') AND T4.[SlpName] = [%2]
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
SELECT T0.[DocNum], T0.[DocDate], T0.[CardName], T0.[DocTotal] FROM OINV T0 WHERE T0.[DocDate] Between [%0] and [%1]
Con esto obtienes los datos de tus facturas en un período determinado
Agrega un Union All con la tabla de Notas de crédito y te saldrá el valor neto.
Juan Valentin Quevedo Batista wrote:
Necesito sacar un reporte mensual de ventas(facturas). Lo que intento es sacar todas las facturas en un periodo de tiempo restandole las Notas de credito.
Bosquejare un ejemplo
Mayo 2013
Numero | Fecha | Socio de negocios | Numero de documento | Total de documento | Artculo 1 cant/Importe | Artculo 2 cant/desc | Artculo 3 cant/desc | IVA | IVA Retenido | |
---|---|---|---|---|---|---|---|---|---|---|
1 | 01/05/2013 | El patito S.A. | 2315 | $1000 | 1-100 | 2 - 500 | ||||
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Marco agradezco de antemano el apoyo brindado pero la consulta que me sugieres me marca el siguiente error
1). [Microsoft][SQL Native Client][SQL Server]Arithmetic overflow error converting expression to data type datetime. 'Valores definidos por usuario' (CSHS)
Cabe mencionar que soy nuevo en esto como hago el union all con la tabla RIN1
saludos
Mira este tema: Ventas NETAS | SCN
Como Ejemplo:
SELECT Distinct TIPO = 'FACTURAS'
,SUM(T0.DocTOTAL-T0.VatSum-T0.TotalExpns) 'Ventas S/IVA(Desc Aplicados)'
,sum(T0.Discsum) 'Desc Ventas',sum(T0.TotalExpns) 'Fletes Cobrados'
,sum(T0.vatsum) 'IVA (Vta+Flete)'
,Count(T0.Docnum) '# Facts'
FROM OINV T0
INNER JOIN NNM1 T1 ON T0.SERIES = T1.SERIES
WHERE T0.DocDate BETWEEN [%0] AND [%1]
AND T0.CANCELED != 'Y'
UNION
Select Distinct TIPO='NOTA DE CREDITO'
,(Sum(T0.DocTotal-T0.VatSum-T0.TotalExpns))*-1 'Ventas S/IVA (Desc Aplicados)'
,(Sum(T0.DiscSum))*-1 'Desc Ventas'
,(Sum(TotalExpns))*-1 'Fletes Cobrados'
,(Sum(T0.VatSum))*-1 'IVA (Vta+Flete)'
,Count(T0.DocNum)*-1 '#Facts'
FROM ORIN T0
INNER JOIN NNM1 T1 ON T0 .Series=T1.Series
WHERE T0.DocDate Between [%0] and [%1]
Saludos.
Alessandro.
Alessandro Buenos dias de antemano agradesco la pronta ayuda y tambien quiero comentarte que la consulta que me sugieres me marca el siguiente error:
1). [Microsoft][SQL Native Client][SQL Server]Arithmetic overflow error converting expression to data type datetime. 'Valores definidos por usuario' (CSHS)
OJALA Y PUEDAS AYUDARME YA QUE ME EST OCACIONANDO MUCHSO DOLORES DE CABEZA
SALUDOS
Saludos Juan, a ver por que no subes el .sql que estas trabajando, si lo estas ejecutando en la base de datos que corresponde?
Prueba este código en el SQL directamente
SELECT T0.DocNum, T0.DocDate, T0.CardName, T0.DocTotal FROM OINV T0 WHERE T0.DocDate Between '11-14-2013' and '11-15-2013'
ojo al formato de la fecha que use, MMDDYYYY
allí tendrías la primer parte adicional mente debes descontar las Notas de crédito
avísanos como te va
Hola buenos dias!!
Como te fue con la consulta que te paso Jonhy? la corriste en SAP o solo en SQL
Prueba corriendo las consutas pequeñas sin los WHERE solo para hacerlo por pasos y ver donde marca el error en SAP. Si no te corre sube una imagen de tu error.
SELECT T0.DocNum, T0.DocDate, T0.CardName, T0.DocTotal FROM OINV T0
Saludos
Buenos días
Favor corre el query de esta manera.
SELECT Distinct TIPO = 'FACTURAS'
,SUM(T0.DocTOTAL-T0.VatSum-T0.TotalExpns) 'Ventas S/IVA(Desc Aplicados)'
,sum(T0.Discsum) 'Desc Ventas',sum(T0.TotalExpns) 'Fletes Cobrados'
,sum(T0.vatsum) 'IVA (Vta+Flete)'
,Count(T0.Docnum) '# Facts'
FROM dbo.OINV T0
INNER JOIN dbo.NNM1 T1 ON T0.SERIES = T1.SERIES
WHERE T0.DocDate BETWEEN '[%0]' AND '[%1]'
AND T0.CANCELED != 'Y'
UNION
Select Distinct TIPO='NOTA DE CREDITO'
,(Sum(T0.DocTotal-T0.VatSum-T0.TotalExpns))*-1 'Ventas S/IVA (Desc Aplicados)'
,(Sum(T0.DiscSum))*-1 'Desc Ventas'
,(Sum(TotalExpns))*-1 'Fletes Cobrados'
,(Sum(T0.VatSum))*-1 'IVA (Vta+Flete)'
,Count(T0.DocNum)*-1 '#Facts'
FROM dbo.ORIN T0
INNER JOIN dbo.NNM1 T1 ON T0 .Series=T1.Series
WHERE T0.DocDate Between '[%0]' and '[%1]'
Saludos
User | Count |
---|---|
100 | |
12 | |
11 | |
6 | |
6 | |
4 | |
3 | |
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.