select ...; from Table1 LEFT JOIN Table2 on ...In this case, if a record in Table1 has no match in Table2, fields in Table2 will have null values. You can use nvl() to convert this to something useful. For example, let's assume that not all invoices have a client.
select Invoice.*, nvl(Client.ClientName, space(30)); from Invoice join Client on Invoice.ClientId = Client.ClientId; into table Temp report form ...In the above example, the client name is replaced with spaces (which should equal the length of the "ClientName" field), for reporting purposes.