如何在SQL报表中添加NULL

时间:2014-06-06 14:35:35

标签: sql null report add

好的,这很难解释,但我会尽我所能。所以我正在通过报告构建器构建报告。该报告将根据用户希望输入的日期显示每个报告的资助日期和取消日期。所以参数是@BeginDate和@EndDate以及第三个参数,它是他们选择的公司的下拉列表。编解码器很好,我可以看到报告很好。但是,当我测试报告时,我发现帐户中有3个NULLS用于取消日期,但资金日期帐户没有问题。所以我所遇到的错误是在资助报告中有3个账户,资助账户没有显示,因为取消日期是NULL。所有其他帐户显示正常,除了3.这是我的编解码器在MS SQL SERVER 2008中。我正在使用存储过程。如果您需要更多细节,我会为您提供更清晰的信息。

ALTER PROC [dbo].[spAdminFundedDate]
    (@Beginning_Date  DATETIME, 
     @Ending_Date DATETIME,
     @program int=null)

As
    Begin
        SELECT  @program, c.program_id, d.dealer_code,b.last_name As DealerName,
                a.account_no, a.vin, ((e.last_name)+','+(e.first_name)) As Name, 
                a.funded_date, a.cancel_refund_date, a.purchase_date,a.miles,
                a.duration,a.sale_price,a.number_of_payments, a.sales_tax, a.downpayment
        FROM tDealer d 
        JOIN tContact b ON d.contact_id = b.contact_id 
        JOIN tContract a On d.dealer_id = a.dealer_id 
        JOIN tCompany c ON d.company_id= c.company_id
        JOIN tContact E On e.contact_id = a.contact_id

        WHERE c.program_id = @program  
          And a.funded_date between @Beginning_Date and @Ending_Date
          Or a.cancel_refund_date between @Beginning_Date and @Ending_Date
    End 

    Exec spAdminFundedDate '05/01/2014', '05/30/2014','55'

1 个答案:

答案 0 :(得分:0)

好像你需要处理可能的空值,这应该可以解决你的问题。

尝试类似:

isnull(a.cancel_refund_date, 0)

在您的select语句中。如果它为null,则0为该值,因此您可以放置​​任何符合您需求的值。这将使它不会被拉出空值。