reina
22-05-2006, 19:43:52
Hola ver si me ayudan...
Tengo una tablas que tienen:
MOVIMIENTOS: comprobante, tipo de comprobante, cantidad, idarticulo, precio
OTRABAJO: autoid, IDmovil, efrio
VALES: autoid, IDmovil, efrio
MOVIL: idmovil, idinterno, ...
ARTICULOS: autoid, descripcion
El problema es el siguiente, yo deberia cruzar los comprobantes de Otrabajo y vales con todos los movimientos correspondientes a los moviles.. y sacar por movil la suma de la cantidad de articulos y la suma del costo total del articulo agrupado por movil. El tema es que no todas las OTrabajo son de moviles..algunas son de otros equipos y sucede lo mismo con los vales.
Hice la siguiente sentencia:
select FLOTA."cID",MOVIMIENTOS."IDARTICULO",ARTICULOS."DESCRIPCION",SUM(MOVIMIENTOS."CANTIDAD"),SUM(MOVIMIENTOS."CANTIDAD" * MOVIMIENTOS."PRECIOUNITARIO")
from VALES,MOVIMIENTOS, FLOTA, ARTICULOS,OTRABAJOXMOVIL
WHERE
((VALES."IDMOVIL" = FLOTA."autoID") and
(VALES."autoID" = MOVIMIENTOS."COMPROBANTE") and
(MOVIMIENTOS."TIPOCOMPROBANTE" = 2) and (MOVIMIENTOS."IDARTICULO" = ARTICULOS."autoID"))
OR
((OTRABAJOXMOVIL."IDMOVIL" = FLOTA."autoID") and
( OTRABAJOXMOVIL."autoID" = MOVIMIENTOS."COMPROBANTE")
(MOVIMIENTOS."TIPOCOMPROBANTE" = 1) and
(MOVIMIENTOS."IDARTICULO" = ARTICULOS."autoID" ))
GROUP By FLOTA."cID",MOVIMIENTOS."IDARTICULO",ARTICULOS."DESCRIPCION"
Order By FLOTA."cID"
Aqui lo que hace es mirar cada movil y fijarse si tienen Vales cruzarlo con sus respectivos movimientos de stock o si ese movil tiene Orden de trabajo y cruzarlo con sus respectivos movimientos. Lo que deberia hacer es juntar ese informacion agruparla por movil y sumar las cantidades (cantidad y precios).
Asi tendria un detalle del consumo de cada movil.
Pero cuando la ejecuto me tira registros repetidos...no sé en que le estoy errando. Si alguien me podria ayudar que es lo que tengo mal o si se puede hacer de otra manera!..
tkssss y saludos!
LA PATRIA SERA LIBRE!
Tengo una tablas que tienen:
MOVIMIENTOS: comprobante, tipo de comprobante, cantidad, idarticulo, precio
OTRABAJO: autoid, IDmovil, efrio
VALES: autoid, IDmovil, efrio
MOVIL: idmovil, idinterno, ...
ARTICULOS: autoid, descripcion
El problema es el siguiente, yo deberia cruzar los comprobantes de Otrabajo y vales con todos los movimientos correspondientes a los moviles.. y sacar por movil la suma de la cantidad de articulos y la suma del costo total del articulo agrupado por movil. El tema es que no todas las OTrabajo son de moviles..algunas son de otros equipos y sucede lo mismo con los vales.
Hice la siguiente sentencia:
select FLOTA."cID",MOVIMIENTOS."IDARTICULO",ARTICULOS."DESCRIPCION",SUM(MOVIMIENTOS."CANTIDAD"),SUM(MOVIMIENTOS."CANTIDAD" * MOVIMIENTOS."PRECIOUNITARIO")
from VALES,MOVIMIENTOS, FLOTA, ARTICULOS,OTRABAJOXMOVIL
WHERE
((VALES."IDMOVIL" = FLOTA."autoID") and
(VALES."autoID" = MOVIMIENTOS."COMPROBANTE") and
(MOVIMIENTOS."TIPOCOMPROBANTE" = 2) and (MOVIMIENTOS."IDARTICULO" = ARTICULOS."autoID"))
OR
((OTRABAJOXMOVIL."IDMOVIL" = FLOTA."autoID") and
( OTRABAJOXMOVIL."autoID" = MOVIMIENTOS."COMPROBANTE")
(MOVIMIENTOS."TIPOCOMPROBANTE" = 1) and
(MOVIMIENTOS."IDARTICULO" = ARTICULOS."autoID" ))
GROUP By FLOTA."cID",MOVIMIENTOS."IDARTICULO",ARTICULOS."DESCRIPCION"
Order By FLOTA."cID"
Aqui lo que hace es mirar cada movil y fijarse si tienen Vales cruzarlo con sus respectivos movimientos de stock o si ese movil tiene Orden de trabajo y cruzarlo con sus respectivos movimientos. Lo que deberia hacer es juntar ese informacion agruparla por movil y sumar las cantidades (cantidad y precios).
Asi tendria un detalle del consumo de cada movil.
Pero cuando la ejecuto me tira registros repetidos...no sé en que le estoy errando. Si alguien me podria ayudar que es lo que tengo mal o si se puede hacer de otra manera!..
tkssss y saludos!
LA PATRIA SERA LIBRE!