Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

combinar dos selects y promediar

Estas en el tema de combinar dos selects y promediar en el foro de SQL Server en Foros del Web. Buenas a todos, Quiero solicitar su ayuda en la solución de la construcción de un kardex, tengo dos consultas por un lado tengo las entradas ...
  #1 (permalink)  
Antiguo 07/02/2014, 09:56
 
Fecha de Ingreso: enero-2014
Mensajes: 10
Antigüedad: 10 años, 2 meses
Puntos: 0
Pregunta combinar dos selects y promediar

Buenas a todos,

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:
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
Salidas (ventas)

Código:
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
Saludos.

Etiquetas: combinar, fecha, group, select, selects
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:53.