Ayuda query facturas

Buenas tardes, me gustaría me den una ayuda con el siguiente query.
Necesito que esas 2 consultas se sumen en una sola columna.

SELECT CASE WHEN A."DocCur"='S/' THEN B."LineTotal"/(SELECT X."Rate" FROM ORTT X WHERE X."RateDate"=A."DocDate") ELSE B."TotalFrgn" END
FROM OINV A INNER JOIN INV1 B ON A."DocEntry"=B."DocEntry" INNER JOIN OITM C ON C."ItemCode"=B."ItemCode"
WHERE C."U_SYP_MARCA"='MarcaX' AND MONTH(A."DocDate")=1 AND YEAR(A."DocDate")='2020' AND A."U_SYP_STATUS"='V'
UNION ALL
SELECT CASE WHEN A."DocCur"='S/' THEN B."LineTotal"/(SELECT X."Rate" FROM ORTT X WHERE X."RateDate"=A."DocDate") ELSE B."TotalFrgn" END
FROM ODPI A INNER JOIN DPI1 B ON A."DocEntry"=B."DocEntry" INNER JOIN OITM C ON C."ItemCode"=B."ItemCode"
WHERE C."U_SYP_MARCA"='MarcaX' AND MONTH(A."DocDate")=1 AND YEAR(A."DocDate")='2020' AND A."U_SYP_STATUS"='V'

Al intentar ponerlo en un select ambas y sumar, me sale el siguiente error “single-row query returns more than one row”.

Estare atento a sus soluciones.

¿Qué hace este Query?

Por favor, recuerda explicar qué hacen las consultas.

La primera consulta muestra el total en dolares de la factura de proveedor y el segundo muestra el total en dolares de las facturas de anticipo en las que encuentren un item en especifico. Me gustaria una consulta que sume ambas cantidades en una sola columna, pero al momento de encerrarlas en un select y sumar me sale el error que mencione mas arriba "single-row query returns more than one row”.

El problema a ese query solo puede estar en la subconsulta:

(SELECT X."Rate" FROM ORTT X WHERE X."RateDate"=A."DocDate")

para que te devuelva un solo valor alli, debes aumentar en la condicion la moneda (Currency)

Le agregue lo que me mencionaste pero me sigue saliendo el mismo error .

SELECT SUM((
SELECT CASE WHEN A."DocCur"='S/' THEN B."LineTotal"/(SELECT X."Rate" FROM ORTT X WHERE X."RateDate"=A."DocDate" and X."Currency"='US$') ELSE B."TotalFrgn" END
FROM OINV A INNER JOIN INV1 B ON A."DocEntry"=B."DocEntry" INNER JOIN OITM C ON C."ItemCode"=B."ItemCode"
WHERE C."U_SYP_MARCA"='MARCA X' AND MONTH(A."DocDate")=1 AND YEAR(A."DocDate")='2020' AND A."U_SYP_STATUS"='V'
UNION ALL
SELECT CASE WHEN A."DocCur"='S/' THEN B."LineTotal"/(SELECT X."Rate" FROM ORTT X WHERE X."RateDate"=A."DocDate" and X."Currency"='US$') ELSE B."TotalFrgn" END
FROM ODPI A INNER JOIN DPI1 B ON A."DocEntry"=B."DocEntry" INNER JOIN OITM C ON C."ItemCode"=B."ItemCode"
WHERE C."U_SYP_MARCA"='MARCA X' AND MONTH(A."DocDate")=1 AND YEAR(A."DocDate")='2020' AND A."U_SYP_STATUS"='V')) FROM DUMMY

No se si abría otra manera de ejecutar la consulta. Quedo a la espera de su respuesta.

dudo mucho que el Currency sea “US$”, generalmente es “USD”, pero prueba ejecutar sola la subconsulta para uno de los casos.
Estas seguro que tienes definido el Rate para todas las fechas? por que sino tambien fallara.

Para una subconsulta me funciona normal, no se si tenga algo que ver el union all.

si tienes USD como moneda de sistema, en vez de la subconsulta prueba usando alguno de estos campos:
TotalFrgn
TotalSumSy
GTotalSC
GtotalFC

Este tema se cerró automáticamente 30 días después de la última publicación. No se permiten nuevas respuestas.