SQL Server - Realizar resta de dos consultas distintas

 
Vista:
sin imagen de perfil
Val: 1
Ha aumentado su posición en 11 puestos en SQL Server (en relación al último mes)
Gráfica de SQL Server

Realizar resta de dos consultas distintas

Publicado por Jorge (1 intervención) el 02/05/2019 20:56:26
Tengo dos consultas de distintos años, donde saco el total de lo cotizado por asesores por todo el mes de Abril del 2019, ahora quieren que haga una comparativa de lo que se cotizo en Abril 2018, por asesor, para hacer comparativa de ambos años. Sin embargo ambas consultas estan en distintas bases de datos, como puedo unirlas en una misma consulta y segun sus resultados de cada una de ellas sacar la diferencia para hacer la comparativa.

--Primera consulta
1
2
3
4
5
6
SELECT email_usuario [en el mes 2018],
SUM( IIF(moneda='MXN',total/tipo_cambio,total)) [Total USD 2018]
FROM [operaciones]
WHERE fecha_operacion BETWEEN '2018-03-01 00:00:00' AND '2018-03-10 23:59:59' AND email_usuario LIKE  '%@incom.mx%'
 
GROUP BY email_usuario


--Segunda consulta, distinta base de datos
1
2
3
4
5
6
7
8
SELECT CP.usuario [en el mes 2019], SUM( IIF(DN.monedaCotizacion='MXN',CP.precio_total/DN.tipo_cambio,CP.precio_total)) [Total USD 2019]
 
FROM master.dbo.[cotizaciones_productos] CP  LEFT JOIN master.dbo.[cotizaciones_datosNumericos] DN
ON DN.numero_operacion = CP.numero_operacion
 
WHERE CP.fecha_creacion BETWEEN '2019-03-01 00:00:00' AND '2019-03-10 23:59:59' AND CP.usuario LIKE  '%@incom.mx%'
 
GROUP BY CP.usuario

*Puse un IIF, debido a que las cotizaciones se puedes hacer en dolares y pesos mexicanos, pero yo estoy conviertiendo todo primero a dolares y después sumandolas
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Isaias
Val: 3.250
Oro
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

Realizar resta de dos consultas distintas

Publicado por Isaias (4558 intervenciones) el 02/05/2019 21:34:57
Si ambas bases están en el mismo servidor, entonces solo utiliza UNC para nombrar a los objetos

SELECT *
FROM MyBase1.MySchema.MyTabla
WHERE.......

SELECT *
FROM MyBase2.MySchema.MyTabla
WHERE......
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar