Something to have fun with. This query lists all patients that have demographics entered but no encounters but also have an appointment in the future from the current date/time. The query shows the patient ID, last name, first name, date added to demographics, and date of any future appointments from the current date/time (which means a patient may be listed more than once if they have more than one future appointment).
Wrote this in 5 minutes and I'm a little tired so it the query may need tweaking, but, like I said, fun place to start.
SELECT a.PatientID, b.last as lastname, b.first as firstname, b.DateRowAdded as dateAddedToDemos, a.appointdate FROM
(SELECT Patientid, Date as appointdate FROM Scheduling WHERE Scheduling.Date >= GETDATE() AND Scheduling.PatientID IS NOT NULLand Scheduling.PatientID != '') AS a INNER JOIN
(SELECT demographics.patientid, Demographics.Last, Demographics.first, Demographics.DateRowAdded FROM demographics LEFT OUTER JOIN Billing on Demographics.PatientID = Billing.PatientID
WHERE Billing.PatientID is null) AS b on a.patientid = b.patientid
ORDER BY lastname, firstname