Итак, я пытаюсь вернуть 12 месяцев данных из billing_monthly_verizon_charges_detail_archive
, и я не могу найти способ сделать, чтобы вернуть 0s, когда нет данных без удаления состояние verizon.ITEM_DESCRIPTION <> 'Payment Received'
. Я понимаю, почему он не возвращает никаких данных, но как я могу заставить его возвращать 0 за каждый из месяцев invoice_date table
с условным - что необходимо для тех случаев, когда есть данные.Возврат результатов на правой стороне Присоединиться к пустой таблице с где condtion
SELECT 'H. Verizon' AS category, CONVERT(VARCHAR(7), id.INVOICE_DATE, 111) AS invoice_date, ISNULL(SUM(verizon.COST), 0.00) AS total_charges
FROM BILLING_MONTHLY_VERIZON_CHARGES_DETAIL_ARCHIVE AS verizon
RIGHT OUTER JOIN
INVOICE_DATES AS id ON verizon.BILL_CYCLE_DATE = id.INVOICE_DATE
WHERE(id.INVOICE_DATE BETWEEN @BillingMonthMinus13 AND @BillingMonth) AND (verizon.ITEM_DESCRIPTION <> 'Payment Received')
GROUP BY id.INVOICE_DATE
http://wiki.lessthandot.com/index.php/WHERE_conditions_on_a_LEFT_JOIN – HLGEM