Я хочу вычислить столбец total_revenue для каждой строки, но cte этого не делает.Я получаю столбец pr как пустой в течение нескольких месяцев и имеет значение для некоторых.Так что я получаю total_revenue, где столбец pr не пустой.Что я делаю не так?
ormonth cc_o cc_r po pr po_o po_r total_orders total_revenue
2018-06 1367 152903.89 0 44 6424.66 1411
2018-05 10069 1086544.02 0 242 27926.02 10311
2018-04 11208 1151114.03 0 221 26004.69 11429
2018-01 13416 1379387.01 0 152 17023.29 13568
2018-03 12025 1303165.8 0 197 19957.87 12222
2018-02 12647 1252867.33 0 171 16907.52 12818
2018-01 145 1100.43 6 121 170 1600 321 2822
вот запрос, который я использовал:
with cte_Revenue as (
SELECT
CONVERT(VARCHAR(7),Orders.OrderDate,126) as ormonth,
COUNT(CASE WHEN Orders.paymentmethodid = 5 OR Orders.paymentmethodid = 6 THEN Orders.PaymentAmount END) as 'CC_O',
SUM(CASE WHEN Orders.paymentmethodid = 5 OR Orders.paymentmethodid = 6 THEN Orders.PaymentAmount END) as 'CC_R',
COUNT(CASE WHEN Orders.paymentmethodid = 25 THEN Orders.paymentmethodid END) as 'PO',
SUM(CASE WHEN Orders.paymentmethodid = 25 THEN Orders.PaymentAmount END ) as 'PR',
COUNT(CASE WHEN Orders.paymentmethodid = 1 THEN Orders.paymentmethodid END) as 'PO_O',
SUM(CASE WHEN Orders.paymentmethodid = 1 THEN Orders.PaymentAmount END ) as 'PO_R'
FROM
Orders
WHERE
Orders.OrderDate BETWEEN '01/01/2018' AND getdate() -0 AND
Orders.OrderStatus <> 'Cancelled'
GROUP BY
CONVERT(VARCHAR(7),Orders.OrderDate,126))
Select
ormonth,
CC_O,
CC_R,
PO,
PR,
PO_O,
PO_R,
(CC_O+PO+PO_O) AS Total_Orders,
(CC_R+PR+PO_R) AS Total_Revenue
FROM cte_Revenue