Tsql 返回具有where条件的空表上右外部联接的结果

Tsql 返回具有where条件的空表上右外部联接的结果,tsql,conditional-statements,outer-join,Tsql,Conditional Statements,Outer Join,因此,我试图从billing_monthly_verizon_charges_detail_archive返回12个月的数据,如果没有删除条件verizon.ITEM_DESCRIPTION“Payment Received”,我无法找到在没有数据时返回0的方法。我知道它为什么不返回任何数据,但如何让它在有条件的情况下为每个月的invoice_date表返回0,这是有数据时需要的 SELECT 'H. Verizon' AS category, CONVERT(VARCHAR(7), id.IN

因此,我试图从billing_monthly_verizon_charges_detail_archive返回12个月的数据,如果没有删除条件verizon.ITEM_DESCRIPTION“Payment Received”,我无法找到在没有数据时返回0的方法。我知道它为什么不返回任何数据,但如何让它在有条件的情况下为每个月的invoice_date表返回0,这是有数据时需要的

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
考虑:

SELECT  
    'H. Verizon' AS category, 
    CONVERT(VARCHAR(7), INVOICE_DATE,111) AS invoice_date, 
    ISNULL(SUM(COST), 0.00) AS total_charges
FROM 
    (SELECT 
        INVOICE_DATE
    FROM
        INVOICE_DATES 
    WHERE
        INVOICE_DATE BETWEEN @BillingMonthMinus13 AND @BillingMonth ) id    LEFT OUTER JOIN
    (SELECT
        BILL_CYCLE_DATE, 
        COST
    FROM
        BILLING_MONTHLY_VERIZON_CHARGES_DETAIL_ARCHIVE
    WHERE
        ITEM_DESCRIPTION <> 'Payment Received'  ) verizon   ON 
    BILL_CYCLE_DATE = INVOICE_DATE
GROUP BY 
    INVOICE_DATE
考虑:

SELECT  
    'H. Verizon' AS category, 
    CONVERT(VARCHAR(7), INVOICE_DATE,111) AS invoice_date, 
    ISNULL(SUM(COST), 0.00) AS total_charges
FROM 
    (SELECT 
        INVOICE_DATE
    FROM
        INVOICE_DATES 
    WHERE
        INVOICE_DATE BETWEEN @BillingMonthMinus13 AND @BillingMonth ) id    LEFT OUTER JOIN
    (SELECT
        BILL_CYCLE_DATE, 
        COST
    FROM
        BILLING_MONTHLY_VERIZON_CHARGES_DETAIL_ARCHIVE
    WHERE
        ITEM_DESCRIPTION <> 'Payment Received'  ) verizon   ON 
    BILL_CYCLE_DATE = INVOICE_DATE
GROUP BY 
    INVOICE_DATE