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”.
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”.
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.