SQL Server - ayuda con campo calculado

 
Vista:

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
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

otra ves

Publicado por derick (8 intervenciones) el 18/12/2006 03:39:44
por alguna razon esta parte del mensaje se distorsiono

--------------- COMO HAGO PARA OBTENER ESTE RESULTADO ***************************************************************

codgeneral tipo fecha Total_operacion Dinero_Por_fecha


----------------- ------- -------------------- -----------------------------
1 V 1 2006-02-01 10 10
2 V 2 2006-02-02 10 20
3 V 3 2006-02-03 10 30
4 V 4 2006-02-03 10 40
5 C 1 2006-02-20 -13 27
6 C 2 2006-03-02 -13 24
7 V 5 2006-03-09 10 34
8 C 3 2006-03-11 -12 26
**Dinero_Por_fecha
no se puede ser algo asi como un acumumaldor
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:otra ves

Publicado por Isaías (3308 intervenciones) el 18/12/2006 20:57:10
-- Acmula el valor en una columna
-- D.R. Alejandro Mesa

use northwind
go

create table t1 (
Codigo varchar(15) not null unique,
Detalle varchar(25),
Importe money,
Porcentaje decimal (5, 2)
)
go

insert into t1 values('11111', 'xxxxxx', 100.00, 5.5)
insert into t1 values('88888', 'yyyyyy', 55.50, 4.8)
insert into t1 values('33333', 'aaaaaa', 55.00, 4.8)
insert into t1 values('99999', 'wweew', 40.00, 4.0)
go

select
a.codigo, a.detalle, a.importe, a.porcentaje,
sum(b.porcentaje) as porcentaje_acumulado
from
t1 as a
left join
t1 as b
on a.porcentaje < b.porcentaje
or (a.porcentaje = b.porcentaje and a.codigo >= b.codigo)
group by
a.codigo, a.detalle, a.importe, a.porcentaje
order by
a.porcentaje desc, a.codigo
go

drop table t1
go
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:ayuda con campo calculado

Publicado por Isaías (3308 intervenciones) el 18/12/2006 20:54:23
¿Que version de SQL Server tienes?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:ayuda con campo calculado

Publicado por derick (8 intervenciones) el 21/12/2006 02:12:16
gracias por el scrip
voy a probarlo

a y la version del sql es la 2000
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar