CONSULTA BITONE

15/11/2006 - 13:51 por William Garcia | Informe spam
bitone no se si me haga entender esta consulta me da el saldo total, ahora
lo que necesito es que a ese saldo me reste las notas credito doctpo='3' si
tiene ingresadas despues del 30/08/2006

Select A.abocod, Sum(saldo) From (select abocod, sum(docimp) as saldo
from document where doctpo in (1,4,6,7)
Group by abocod
union all
select abocod, sum(docimp) * -1 from document where doctpo in (2,3,5,8)
Group by abocod) A Group by
A.abocod
 

Leer las respuestas

#1 BitOne®
15/11/2006 - 15:34 | Informe spam
Hola William Garcia:

aqui te expongo un pequeño ejemplo a modo de ilustracion para que puedas ver
las formas en que puedes obtener tu resultado
y determines cual te combiene mas.

OJO: No lo ejecutes en un server de produccion y si es de produccion
serciorate de que estos datos no existan ni tablas ni nada por el estilo.

go
set nocount on
if object_id('document','U') is not null
drop table document
go
/************* creo un tabla para la prueba ********************/
create table document (
abocod int,
docimp money,
doctpo int,
fecha datetime
)
go
/*
bitone no se si me haga entender esta consulta me da el saldo total, ahora
lo que necesito es que a ese saldo me reste las notas credito doctpo='3' si
tiene ingresadas despues del 30/08/2006
*/

/********** Inserto registros de prueba *******************/
insert into document values ( 01, 100.00, 1,'20060816')
insert into document values ( 01, 110.00, 2,'20060817')
insert into document values ( 01, 120.00, 3,'20060818')
insert into document values ( 01, 130.00, 4,'20060819')
insert into document values ( 02, 140.00, 5,'20060820')
insert into document values ( 02, 150.00, 6,'20060821')
insert into document values ( 02, 160.00, 7,'20060822')
insert into document values ( 02, 170.00, 8,'20060823')
insert into document values ( 03, 180.00, 1,'20060824')
insert into document values ( 03, 190.00, 2,'20060825')
insert into document values ( 03, 200.00, 5,'20060826')
insert into document values ( 03, 210.00, 6,'20060827')
insert into document values ( 04, 220.00, 7,'20060828')
insert into document values ( 04, 230.00, 8,'20060829')
insert into document values ( 04, 240.00, 3,'20060901')
insert into document values ( 04, 250.00, 3,'20060902')
go
set nocount off
go
/************* Realizo el calculo que tu deseas para que puedas ver las
notas de credito de cada factura o ducumento
/************* Coloco en una columna las notas de credito y en otra columna
el monto de las facturas neto
/************* y la tercera columna obtiene un subquery para mostrarte el
total de las ventas
select abocod,
Sum(case
when fecha > '20060830' And doctpo = 3 then 0
else docimp
end) [MontoTotal], --Saca el Total de cada factura
Sum(case
when fecha > '20060830' And doctpo = 3 then -docimp
else 0
end) [NotaCredito], -- Saca notas de credito
(select sum(case when fecha > '20060830' And doctpo = 3 then -docimp
else docimp end) from document) Total -- Saca Total de la Factura con las
notas de credito rebajadas.

From document
Group by abocod
go

Sobre el resultado nos comentas.

Saludos,

BitOne®

PD: Puedes exponer siempre tus preguntas o cumentario a cualquiera de
nosotros aqui en el grupo. :)




"William Garcia" wrote in message
news:
bitone no se si me haga entender esta consulta me da el saldo total, ahora
lo que necesito es que a ese saldo me reste las notas credito doctpo='3'


si
tiene ingresadas despues del 30/08/2006

Select A.abocod, Sum(saldo) From (select abocod, sum(docimp) as saldo
from document where doctpo in (1,4,6,7)
Group by abocod
union all
select abocod, sum(docimp) * -1 from document where doctpo in (2,3,5,8)
Group by abocod) A Group by
A.abocod


Preguntas similares