Quiero solicitar su ayuda en la solución de la construcción de un kardex, tengo dos consultas por un lado tengo las entradas y por otro lado las salidas, esto es lo que quiero hacer: cuando se compra por primera ves un articulo se le calcula el costo initario y las ventas que se hacen posteriormente se calculan con ese costo, el problema viene cuando se surte ese mismo artículo pero trae otro costo unitario y lo que se necesita es promediar el primer costo unitario con el de la segunda compra y el resultado será el costo unitario de las existencias que hay de la compra 1 y de la 2, pongo un ejemplo para explicarme mejor
y así sucesivamente, esto con todos los artículos que se tienen, obviamente los cálculos no tendrían que salir pero los puse para saber de donde salen estos.
Me gustaría saber si esto es posible, de ser así podrían guiarme a realizar estos cálculos, les estaré muy agradecido por sus respuestas, a continuación pongo mis consultas
Entradas (compras)
Código:
Salidas (ventas)WITH DETALBARAN AS ( SELECT ADC.PREFIJOPED, ADC.AGENTEPED, ADC.NUMPED, ACC.SUALBARAN, REFERENCIA, SUM(ACL.UNIDADESTOTAL) AS TOTUNID, ACL.PRECIO AS PRECIOEUROS, (ACL.PRECIO*SUM(ACL.UNIDADESTOTAL)) AS TOTALEUROS, ADC.TIPOCAMBIO, (ACL.PRECIO*ADC.TIPOCAMBIO) AS COMPRAUNITPESOS, ADP.GASTOS, CONVERT(FLOAT,(ACL.PRECIO*SUM(ACL.UNIDADESTOTAL)*ADC.TIPOCAMBIO)) AS TOTALREFPESOS, ACL.NUMSERIE AS TIENDA FROM ALBCOMPRALIN ACL LEFT JOIN ALBCOMPRACAB ACC ON ACC.NUMALBARAN=ACL.NUMALBARAN AND ACC.NUMSERIE=ACL.NUMSERIE LEFT JOIN ADSA_PEDIMENTOSLIN ADP ON ADP.SUALBARAN=ACC.SUALBARAN LEFT JOIN ADSA_PEDIMENTOSCAB ADC ON ADC.NUMPED=ADP.NUMPED AND ADC.PREFIJOPED=ADP.PREFIJOPED AND ADC.AGENTEPED=ADP.AGENTEPED WHERE REFERENCIA = '264231235111' GROUP BY ADC.PREFIJOPED, ADC.AGENTEPED, ADC.NUMPED, ACC.SUALBARAN, REFERENCIA, ACL.NUMSERIE, ACL.PRECIO, ADC.TIPOCAMBIO, ADP.GASTOS ) SELECT *, ((TOTALREFPESOS/SUM(TOTALREFPESOS) OVER ())) AS PROPORCION , (((TOTALREFPESOS/SUM(TOTALREFPESOS) OVER ()) * (GASTOS/TOTUNID)) + COMPRAUNITPESOS) AS COSTOUNIT FROM DETALBARAN GROUP BY DETALBARAN.PREFIJOPED, DETALBARAN.AGENTEPED, DETALBARAN.NUMPED, DETALBARAN.SUALBARAN, DETALBARAN.REFERENCIA, DETALBARAN.TOTUNID, DETALBARAN.PRECIOEUROS, DETALBARAN.TOTALEUROS, DETALBARAN.TIPOCAMBIO, DETALBARAN.COMPRAUNITPESOS, DETALBARAN.GASTOS, DETALBARAN.TOTALREFPESOS, DETALBARAN.TIENDA
Código:
Saludos. select avc.fecha, avl.referencia, avl.unidadestotal, avc.numserie+'/'+convert(varchar(5),avc.numfac) as pedimento from albventalin avl left join albventacab avc on avc.numserie = avl.numserie and avc.numalbaran = avl.numalbaran where avl.referencia = '264231235111' and avl.unidadestotal != 0