obtener saldo por producto

11/09/2007 - 00:05 por jcac | Informe spam
Hola lista,

El problema es que no encuentro forma de obtener el saldo de un producto,
les adjunto el ejemplo que estoy utilizando

create table #tmpcabecera (codigo_sucursal int, codigo_almacen int,
codigo_estado int, codigo_movimiento int, tipo_movimiento char(1))
go
insert into #tmpcabecera values (1,1,1,1,'I')
insert into #tmpcabecera values (1,1,1,2,'I')
insert into #tmpcabecera values (1,1,1,3,'V')
insert into #tmpcabecera values (1,1,1,4,'V')
go
create table #tmpdetalle (codigo_movimiento int, tipo_movimiento char(1),
codigo_producto int, cantidad_producto int)
go
insert into #tmpdetalle values (1, 'I', 1, 10000)
insert into #tmpdetalle values (3, 'V', 1, 5000)
go
select * from #tmpcabecera
select * from #tmpdetalle
go
drop table #tmpcabecera
drop table #tmpdetalle
go

en las tablas de la cabecera el campo tipo_movimiento indica si es
inventario (I) o venta (V) o compra (C).

el resultado que deberia de encontrar es:

codigo_producto, cantidad_producto
1 5000

Espero me puedan ayudar.

Saludos

Preguntas similare

Leer las respuestas

#1 Isaias
11/09/2007 - 02:16 | Informe spam
¿Tienes algun codigo ya avanzado?
Saludos
IIslas


"jcac" wrote:

Hola lista,

El problema es que no encuentro forma de obtener el saldo de un producto,
les adjunto el ejemplo que estoy utilizando

create table #tmpcabecera (codigo_sucursal int, codigo_almacen int,
codigo_estado int, codigo_movimiento int, tipo_movimiento char(1))
go
insert into #tmpcabecera values (1,1,1,1,'I')
insert into #tmpcabecera values (1,1,1,2,'I')
insert into #tmpcabecera values (1,1,1,3,'V')
insert into #tmpcabecera values (1,1,1,4,'V')
go
create table #tmpdetalle (codigo_movimiento int, tipo_movimiento char(1),
codigo_producto int, cantidad_producto int)
go
insert into #tmpdetalle values (1, 'I', 1, 10000)
insert into #tmpdetalle values (3, 'V', 1, 5000)
go
select * from #tmpcabecera
select * from #tmpdetalle
go
drop table #tmpcabecera
drop table #tmpdetalle
go

en las tablas de la cabecera el campo tipo_movimiento indica si es
inventario (I) o venta (V) o compra (C).

el resultado que deberia de encontrar es:

codigo_producto, cantidad_producto
1 5000

Espero me puedan ayudar.

Saludos



Respuesta Responder a este mensaje
#2 jcac
11/09/2007 - 08:13 | Informe spam
Hola Isaias,

Ya lo resolvi no se si este bien pero les adjunto la solucion mas o menos.

select cm.codigo_sucursal, cm.codigo_almacen, cm.codigo_estado,
dm.codigo_producto, sum(case dm.tipo_movimiento when 'I' then
dm.cantidad_producto when 'C' then dm.cantidad_producto when 'V' then
dm.cantidad_producto * -1 else 0 end)
from #tmpdetalle dm inner join #tmpcabecera cm on dm.codigo_movimiento =
cm.codigo_movimiento and dm.tipo_movimiento = cm.tipo_movimiento
where cm.codigo_sucursal = 4 and cm.codigo_almacen = 3 and cm.codigo_estado
= 3 and dm.codigo_producto = 1
group by cm.codigo_sucursal, cm.codigo_almacen, cm.codigo_estado,
dm.codigo_producto

Saludos y gracias

"Isaias" escribió en el mensaje
news:
¿Tienes algun codigo ya avanzado?
Saludos
IIslas


"jcac" wrote:

Hola lista,

El problema es que no encuentro forma de obtener el saldo de un producto,
les adjunto el ejemplo que estoy utilizando

create table #tmpcabecera (codigo_sucursal int, codigo_almacen int,
codigo_estado int, codigo_movimiento int, tipo_movimiento char(1))
go
insert into #tmpcabecera values (1,1,1,1,'I')
insert into #tmpcabecera values (1,1,1,2,'I')
insert into #tmpcabecera values (1,1,1,3,'V')
insert into #tmpcabecera values (1,1,1,4,'V')
go
create table #tmpdetalle (codigo_movimiento int, tipo_movimiento char(1),
codigo_producto int, cantidad_producto int)
go
insert into #tmpdetalle values (1, 'I', 1, 10000)
insert into #tmpdetalle values (3, 'V', 1, 5000)
go
select * from #tmpcabecera
select * from #tmpdetalle
go
drop table #tmpcabecera
drop table #tmpdetalle
go

en las tablas de la cabecera el campo tipo_movimiento indica si es
inventario (I) o venta (V) o compra (C).

el resultado que deberia de encontrar es:

codigo_producto, cantidad_producto
1 5000

Espero me puedan ayudar.

Saludos



email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida