Not retrieving data using Right Join The Above screenshot is my table structure.. 

Invoice Table

CREATE TABLE BASE_TInvoice
(
InvoicePaymentId BIGINT IDENTITY(1,1) NOT NULL,
PaymentDate DATE NOT NULL,
InvoicePaymentMethod VARCHAR(45) NOT NULL,  
IsCashPayment BIT NOT NULL,
Note VARCHAR(5000) NULL,
IsRecordStatus BIT DEFAULT 1 NOT NULL
PRIMARY KEY(InvoicePaymentId)
)


Cash Inovice Table

CREATE TABLE BASE_TCashInvoice
(
CashInvoicePaymentId BIGINT IDENTITY(1,1) NOT NULL,
InvoicePaymentId BIGINT NOT NULL,
CashAmount  MONEY NULL,
CashReceived MONEY NULL,
CashBalance MONEY NULL,
IsRecordStatus BIT DEFAULT 1 NOT NULL
PRIMARY KEY(CashInvoicePaymentId)
)


I have used Right Join to retrieve data.

SELECT BASE_TInvoice.InvoicePaymentId, BASE_TInvoice.PaymentDate, BASE_TInvoice.InvoicePaymentMethod, BASE_TInvoice.IsCashPayment, BASE_TCashInvoice.CashAmount, BASE_TCashInvoice.CashReceived, BASE_TCashInvoice.CashBalance
FROM BASE_TCashInvoice RIGHT OUTER JOIN BASE_TInvoice ON BASE_TCashInvoice.InvoicePaymentId = BASE_TInvoice.InvoicePaymentId
WHERE (BASE_TInvoice.IsRecordStatus = 1) AND (BASE_TCashInvoice.IsRecordStatus IS NULL OR BASE_TCashInvoice.IsRecordStatus = 1) AND (BASE_TInvoice.InvoicePaymentId = 1)


The above query retrieving data fine, the bellow screenshot..


Once i set the BASE_TCashInvoice Status (IsRecordStatus) false and retrive data i'm getting blank, the below two screenshots.





I think the problem is in the where clause (BASE_TCashInvoice.IsRecordStatus IS NULL OR BASE_TCashInvoice.IsRecordStatus = 1)

How to retrieve exact data once BASE_TCashInvoice record InvoicePaymentId 1 and  IsRecordStatus went false need to display only the BASE_TInvoice table record only. Answer should be like below screenshot
Yes, the problem seems to be the condition that involves the CashInvoice table. 
It should be moved from WHERE to ON. Besides that, I'd make a few more changes to the query, to make it more readable: 


Refactor using aliases. Makes the queries shorter and easier to read.
Add comments in your code.
Format the queries nicely. No one likes to read code that is 300 characters wide.
Use LEFT JOIN instead of RIGHT JOIN. This is rather a stylistic matter but RIGHT joins are confusing to many. Even worse, if a query combines LEFT and RIGHT joins. I suggest you use one or the other everywhere, with preference to LEFT. This way, the "base" table(s) can be put always first, after the FROM and the "optional" tables in the end. Makes it easier for the future reader to identify which is which, especially when the query has many joins.
Add a statement terminator (;) at the end of every statement. Microsoft recommends that and in future versions non-terminated queries will be throwing errors (some already do).
Adding the WHERE to ON move of the condition,


the query becomes:

SELECT 
    i  . InvoicePaymentId, 
    i  . PaymentDate, 
    i  . InvoicePaymentMethod, 
    i  . IsCashPayment, 
    ci . CashAmount, 
    ci . CashReceived, 
    ci . CashBalance
FROM
        BASE_TInvoice AS i              -- "base" table:      invoice:       i
    LEFT OUTER JOIN 
        BASE_TCashInvoice AS ci         -- "optional" table:  cash invoice:  ci
    ON  
        ci.InvoicePaymentId = i.InvoicePaymentId 
        AND ( ci.IsRecordStatus IS NULL OR ci.IsRecordStatus = 1 ) 
WHERE 
      i.IsRecordStatus = 1  
  AND i.InvoicePaymentId = 1 ;