si se puede, en lugar de usar una tabla temporal deberias de usar una funcion, aunque en el primer query:
Código SQL:
Ver originalSELECT ((SUM(ACL.UNIDADESTOTAL) * ACL.PRECIO * ADC.TIPOCAMBIO)/(APL.IMPORTEALB * ADC.TIPOCAMBIO)) * APL.GASTOS AS IMPORTEPESOS
FROM ALBCOMPRALIN ACL
LEFT JOIN ALBCOMPRACAB ACC
ON ACC.NUMALBARAN = ACL.NUMALBARAN AND ACC.NUMSERIE = ACL.NUMSERIE
LEFT JOIN ADSA_PEDIMENTOSLIN APL
ON APL.SUALBARAN = ACC.SUALBARAN
LEFT JOIN ADSA_PEDIMENTOSCAB ADC
ON ADC.NUMPED = APL.NUMPED AND ADC.PREFIJOPED = APL.PREFIJOPED AND ADC.AGENTEPED = APL.AGENTEPED
WHERE REFERENCIA = '724141850131' AND APL.NUMPED IS NOT NULL AND APL.NUMPED > 2014
GROUP BY
APL.NUMPED, ADC.FECHAPEDIMENTO, ACL.REFERENCIA, ACL.PRECIO, ADC.TIPOCAMBIO, ADC.GASTOS, APL.SUALBARAN, ACL.UNIDADESTOTAL,
APL.IMPORTEALB, APL.GASTOS
no veo donde filtras por numero de pedimento...... pero bueno seria que hicieras algo asi:
Código SQL:
Ver originalCREATE FUNCTION retorna_suma (@pedimento INT)
RETURNS @TABLE
(
suma INT
)
AS
BEGIN
INSERT INTO @TABLE
SELECT SUM(IMPORTEPESOS) AS total FROM
(
SELECT ((SUM(ACL.UNIDADESTOTAL) * ACL.PRECIO * ADC.TIPOCAMBIO)/(APL.IMPORTEALB * ADC.TIPOCAMBIO)) * APL.GASTOS AS IMPORTEPESOS
FROM ALBCOMPRALIN ACL
LEFT JOIN ALBCOMPRACAB ACC
ON ACC.NUMALBARAN = ACL.NUMALBARAN AND ACC.NUMSERIE = ACL.NUMSERIE
LEFT JOIN ADSA_PEDIMENTOSLIN APL
ON APL.SUALBARAN = ACC.SUALBARAN
LEFT JOIN ADSA_PEDIMENTOSCAB ADC
ON ADC.NUMPED = APL.NUMPED AND ADC.PREFIJOPED = APL.PREFIJOPED AND ADC.AGENTEPED = APL.AGENTEPED
WHERE REFERENCIA = '724141850131' AND APL.NUMPED IS NOT NULL AND APL.NUMPED > 2014 AND @parametro=@pedimento
GROUP BY
APL.NUMPED, ADC.FECHAPEDIMENTO, ACL.REFERENCIA, ACL.PRECIO, ADC.TIPOCAMBIO, ADC.GASTOS, APL.SUALBARAN, ACL.UNIDADESTOTAL,
APL.IMPORTEALB, APL.GASTOS
) AS t1
RETURN
END
y ahora usarla en el segundo query:
Código SQL:
Ver originalSELECT ADC.FECHAPEDIMENTO, ADP.NUMPED, ACL.REFERENCIA, SUM(ACL.UNIDADESTOTAL) AS STOCK,
ACL.PRECIO*ADC.TIPOCAMBIO AS COSTCOMPRA, ADC.TIPOCAMBIO, (ACL.PRECIO*ADC.TIPOCAMBIO)*(SUM(ACL.UNIDADESTOTAL)) AS VALORFACTURA,(SELECT * FROM retorna_suma (pedimento) ) AS sumaconsulta1
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 = '724141850131' AND ADP.NUMPED IS NOT NULL AND ADP.NUMPED > 10000
GROUP BY
ADP.NUMPED, ADC.FECHAPEDIMENTO, ACL.REFERENCIA, ACL.PRECIO, ADC.TIPOCAMBIO
saludos!