Hola.
Desde hace dias estoy batallando con esto que me pidio mi cliente; necesito hacer un reporte donde muestre las mercancias que existen en almacen, sumando el precio de compra de cada una de las mercancias opteniendo asi el costo del inventario. Bueno para esto el tiene que introducir de que fecha a que fecha se hara este calculo; Para lograr esto ami se me ocurrio hacer 2 tablas:
Código SQL
[-]HISTORIAL_COMPRAS (
COD_HISTORIAL_COMPRA INTEGER NOT NULL,
COD_MERCANCIA VARCHAR(7),
FECHA_COMPRA DATE
);
HISTORIAL_VENTAS (
COD_HISTORIAL_VENTAS INTEGER NOT NULL,
COD_MERCANCIA VARCHAR(7),
FECHA_VENTA DATE
);
Donde boy guardando cada compra y venta que se van haciendo registro por registro por ejemplo: si compro 4 Tv guardo 4 veces su codigo 0000009.
Bien ahora esas tablas en las pruebas que estoy haciendo tienen los siguientes datos:
Código SQL
[-]COD_HISTORIAL_COMPRA COD_MERCANCIA FECHA_COMPRA
1 0000009 2006-10-06
2 0000009 2006-10-06
3 0000009 2006-10-06
4 0000009 2006-10-06
Código SQL
[-]COD_HISTORIAL_VENTAS COD_MERCANCIA FECHA_VENTA
1 0000009 2006-10-07
2 0000009 2006-10-08
Donde he vendido esa Tv 2 Veces pero en fechas distintas; En la consulta que se hace si la hago del 2006-10-06 al 2006-10-08, en mi resultado tendrian que estar solo 2 Tv y se sumaria su precio de compra de esas 2 Tvs.
Bueno mi problema es que no puedo lograr eso, el codigo de la consulta que hago es este:
Código SQL
[-]Select HC.Cod_Mercancia
From Historial_Compras HC
Where Hc.Fecha_Compra >='06.10.2006' And
Hc.Fecha_Compra <='06.10.2006' And
(Hc.Cod_Mercancia)
Not In (Select HV.Cod_Mercancia
From Historial_Ventas HV
Where HV.Fecha_Venta >= '06.10.2006' And
HV.Fecha_Venta <= '06.10.2006')
Aqui cuando no se hiso ninguna venta en esa fecha si me muestra todas las ventas pero si cambio ha una fecha que si aya hecho alguna venta me desaparece todos los registros aunque se aya vendido 1 nadamas en esa fecha...
Código SQL
[-]Select HC.Cod_Mercancia
From Historial_Compras HC
Where Hc.Fecha_Compra >='06.10.2006' And
Hc.Fecha_Compra <='07.10.2006' And
(Hc.Cod_Mercancia)
Not In (Select HV.Cod_Mercancia
From Historial_Ventas HV
Where HV.Fecha_Venta >= '06.10.2006' And
HV.Fecha_Venta <= '07.10.2006')
la verdad estoy en la oscuridad ya intente otras formas y nada... alguien que me pueda iluminar con alguna idea de como lograr esto... o si existe otra forma de lograr lo que necesito... se lo agradeceria muchisimo...