ayuda con campo calculado
Publicado por derick (8 intervenciones) el 18/12/2006 03:28:51
Hola gente del foro quiero saber si se puede obtener este campo calculado
tengo 3 tablas ,1 tabla en donde guardo las ventas, otra pra guardar las compras y una tercera que es una especie de guia
q guarda el orden en q se realizaron las operaciones
por ejemplo las 4 primeras operaciones fueron ventas ,las siguientes 2 compras , ..... y asi sucecivamente
lo q quiero es tener un campo calculado q me diga cuanto dinero hay en "caja" por fecha
por el momento tengo esto un select q trae el total de la operacion de compra o venta segun sea el caso
ordenado por el nuemro de operacion Global
bueno eso eso es todo , y de antemano gracias por sus comentarios
(cualquie comentario sera bin recibido)
---------------------- MI SELECT *********************************************************
select TGop.codgeneral,codtipo,TGop.codoperacion ,fecha ,Movimiento_del_dinero =(case
when codtipo='V' then (select total from Tabla1 where Tabla1.codgeneral= TGop.codgeneral)
when codtipo='C' then (select total * -1 from Tabla2 where Tabla2.codgeneral= TGop.codgeneral)
end )
from GuiaOperaciones as TGop
group by TGop.codgeneral ,codtipo ,TGop.codoperacion,TGop.Fecha
--------------- RESULTADO ***************************************************************
codgeneral codtipo codoperacion fecha Movimiento_del_dinero
--------------- ------- ------------- ------------------------------------ ----------------------
1 V 1 2006-02-01 00:00:00.000 10 (UNA VENTA * 10 S/)
2 V 2 2006-02-02 00:00:00.000 10 ""
3 V 3 2006-02-03 00:00:00.000 10 ""
4 V 4 2006-02-03 00:00:00.000 10 ""
5 C 1 2006-02-20 00:00:00.000 -13 (UNA COMPRA * 13
6 C 2 2006-03-02 00:00:00.000 -13 "
7 V 5 2006-03-09 00:00:00.000 10 (UNA VENTA * 10 S/)
8 C 3 2006-03-11 00:00:00.000 -12 (UNA COMPRA* 12
(8 filas afectadas)
----*******************************
--------------- COMO HAGO PARA OBTENER ESTE RESULTADO ***************************************************************
codgeneral codtipo codoperacion fecha Movimiento_ Dinero_Por_fecha del dinero (campo calculado) (algo asi como
como un acumulador
----------------- ------- -------------------- ----------------------------- ----------------------
1 V 1 2006-02-01 00:00:00.000 10 10
2 V 2 2006-02-02 00:00:00.000 10 20
3 V 3 2006-02-03 00:00:00.000 10 30
4 V 4 2006-02-03 00:00:00.000 10 40
5 C 1 2006-02-20 00:00:00.000 -13 27
6 C 2 2006-03-02 00:00:00.000 -13 24
7 V 5 2006-03-09 00:00:00.000 10 34
8 C 3 2006-03-11 00:00:00.000 -12 26
**** al final me qudaria 26 soles
**y tambien sabria cuanto planta hubo despues de una operacion (compra o venta )
---AQUI LES DEJO EL SCRIP Q USE
-------------- CREAR TABLAS ************************************
create table Tabla1 (codoperacion numeric primary key,codgeneral numeric unique,nomoperacion varchar (30),fecha datetime,total decimal ,saldo decimal)
create table Tabla2 (codoperacion numeric primary key,codgeneral numeric unique,nomoperacion varchar (30),fecha datetime ,total decimal ,saldo decimal)
create table GuiaOperaciones (codgeneral numeric primary key, codtipo char (1),codoperacion numeric,Fecha datetime)
----------- CREAR TRIGGERS PARA ACTUALIZAR LA TABLA GUIA OPERCAIONES *********************
----- TRIGGER 1 (la tabla q guarda las ventas)
create trigger TrActualiza_TGuiaOpe1
on Tabla1
for insert
as
INSERT INTO GuiaOperaciones
SELECT ins.codgeneral, 'V',ins.codoperacion,ins.fecha
FROM inserted ins
----- TRIGGER 2 (la tabla q guarda las compras)
create trigger TrActualiza_TGuiaOpe2
on Tabla2
for insert
as
INSERT INTO GuiaOperaciones
SELECT ins.codgeneral, 'C',ins.codoperacion , ins.fecha
FROM inserted ins
---- INSERTANDO *********************************************************
insert into Tabla1 values (1,1,'venta','01/02/2006',10,0)
insert into Tabla1 values (2,2,'venta','02/02/2006',10,0)
insert into Tabla1 values (3,3,'venta','03/02/2006',10,0)
insert into Tabla1 values (4,4,'venta','03/02/2006',10,0)
insert into Tabla2 values (1,5,'compra','20/02/2006',13,0)
insert into Tabla2 values (2,6,'compra','02/03/2006',13,0)
insert into Tabla1 values (5,7,'venta','09/03/2006',10,0)
insert into Tabla2 values (3,8,'compra','11/03/2006',12,0)
select * from Tabla1
select * from Tabla2
select * from GuiaOperaciones
tengo 3 tablas ,1 tabla en donde guardo las ventas, otra pra guardar las compras y una tercera que es una especie de guia
q guarda el orden en q se realizaron las operaciones
por ejemplo las 4 primeras operaciones fueron ventas ,las siguientes 2 compras , ..... y asi sucecivamente
lo q quiero es tener un campo calculado q me diga cuanto dinero hay en "caja" por fecha
por el momento tengo esto un select q trae el total de la operacion de compra o venta segun sea el caso
ordenado por el nuemro de operacion Global
bueno eso eso es todo , y de antemano gracias por sus comentarios
(cualquie comentario sera bin recibido)
---------------------- MI SELECT *********************************************************
select TGop.codgeneral,codtipo,TGop.codoperacion ,fecha ,Movimiento_del_dinero =(case
when codtipo='V' then (select total from Tabla1 where Tabla1.codgeneral= TGop.codgeneral)
when codtipo='C' then (select total * -1 from Tabla2 where Tabla2.codgeneral= TGop.codgeneral)
end )
from GuiaOperaciones as TGop
group by TGop.codgeneral ,codtipo ,TGop.codoperacion,TGop.Fecha
--------------- RESULTADO ***************************************************************
codgeneral codtipo codoperacion fecha Movimiento_del_dinero
--------------- ------- ------------- ------------------------------------ ----------------------
1 V 1 2006-02-01 00:00:00.000 10 (UNA VENTA * 10 S/)
2 V 2 2006-02-02 00:00:00.000 10 ""
3 V 3 2006-02-03 00:00:00.000 10 ""
4 V 4 2006-02-03 00:00:00.000 10 ""
5 C 1 2006-02-20 00:00:00.000 -13 (UNA COMPRA * 13
6 C 2 2006-03-02 00:00:00.000 -13 "
7 V 5 2006-03-09 00:00:00.000 10 (UNA VENTA * 10 S/)
8 C 3 2006-03-11 00:00:00.000 -12 (UNA COMPRA* 12
(8 filas afectadas)
----*******************************
--------------- COMO HAGO PARA OBTENER ESTE RESULTADO ***************************************************************
codgeneral codtipo codoperacion fecha Movimiento_ Dinero_Por_fecha del dinero (campo calculado) (algo asi como
como un acumulador
----------------- ------- -------------------- ----------------------------- ----------------------
1 V 1 2006-02-01 00:00:00.000 10 10
2 V 2 2006-02-02 00:00:00.000 10 20
3 V 3 2006-02-03 00:00:00.000 10 30
4 V 4 2006-02-03 00:00:00.000 10 40
5 C 1 2006-02-20 00:00:00.000 -13 27
6 C 2 2006-03-02 00:00:00.000 -13 24
7 V 5 2006-03-09 00:00:00.000 10 34
8 C 3 2006-03-11 00:00:00.000 -12 26
**** al final me qudaria 26 soles
**y tambien sabria cuanto planta hubo despues de una operacion (compra o venta )
---AQUI LES DEJO EL SCRIP Q USE
-------------- CREAR TABLAS ************************************
create table Tabla1 (codoperacion numeric primary key,codgeneral numeric unique,nomoperacion varchar (30),fecha datetime,total decimal ,saldo decimal)
create table Tabla2 (codoperacion numeric primary key,codgeneral numeric unique,nomoperacion varchar (30),fecha datetime ,total decimal ,saldo decimal)
create table GuiaOperaciones (codgeneral numeric primary key, codtipo char (1),codoperacion numeric,Fecha datetime)
----------- CREAR TRIGGERS PARA ACTUALIZAR LA TABLA GUIA OPERCAIONES *********************
----- TRIGGER 1 (la tabla q guarda las ventas)
create trigger TrActualiza_TGuiaOpe1
on Tabla1
for insert
as
INSERT INTO GuiaOperaciones
SELECT ins.codgeneral, 'V',ins.codoperacion,ins.fecha
FROM inserted ins
----- TRIGGER 2 (la tabla q guarda las compras)
create trigger TrActualiza_TGuiaOpe2
on Tabla2
for insert
as
INSERT INTO GuiaOperaciones
SELECT ins.codgeneral, 'C',ins.codoperacion , ins.fecha
FROM inserted ins
---- INSERTANDO *********************************************************
insert into Tabla1 values (1,1,'venta','01/02/2006',10,0)
insert into Tabla1 values (2,2,'venta','02/02/2006',10,0)
insert into Tabla1 values (3,3,'venta','03/02/2006',10,0)
insert into Tabla1 values (4,4,'venta','03/02/2006',10,0)
insert into Tabla2 values (1,5,'compra','20/02/2006',13,0)
insert into Tabla2 values (2,6,'compra','02/03/2006',13,0)
insert into Tabla1 values (5,7,'venta','09/03/2006',10,0)
insert into Tabla2 values (3,8,'compra','11/03/2006',12,0)
select * from Tabla1
select * from Tabla2
select * from GuiaOperaciones
Valora esta pregunta


0