Debo imprimir un "recibo" de una transacción de venta que ya ocurrió. Quiero el costo total en esa transacción usando declaraciones de selección múltiple.
SELECT TRANSACTIONDATE, PRODUCT.PRODUCTID, (UNITPRICE * QUANTITY) AS TOTAL
FROM SALESITEM, PRODUCT, TRANSACTIONS
WHERE PRODUCT.PRODUCTID = SALESITEM.PRODUCTID
AND TRANSACTIONS.TRANSACTIONID = SALESITEM.TRANSACTIONID
AND TRANSACTIONS.TRANSACTIONID = '106'
GROUP BY ROLLUP(TRANSACTIONDATE, PRODUCT.PRODUCTID)
¿Crees que una función de resumen funcionaría mejor? Mi objetivo es mostrar el costo total de esta transacción más el impuesto a las ventas.
Solución del problema
Podrías usar un CTE
WITH CTE AS (
SELECT TRANSACTIONDATE, PRODUCT.PRODUCTID, (UNITPRICE * QUANTITY) AS TOTAL
FROM SALESITEM, PRODUCT, TRANSACTIONS
WHERE PRODUCT.PRODUCTID = SALESITEM.PRODUCTID
AND TRANSACTIONS.TRANSACTIONID = SALESITEM.TRANSACTIONID
AND TRANSACTIONS.TRANSACTIONID = '106'
)
SELECT * FROM CTE
UNION ALL
SELECT null,null, SUM(TOTAL) * sales_tax_rate_as_decimal
UNION ALL
SELECT null,null, SUM(TOTAL) * ( 1 + sales_tax_rate_as_decimal);
No hay comentarios:
Publicar un comentario