since CRM Online, the only option for reports is using fetchXML instead of SQL.
But fetchXML does not cover important features like:
union select (to combine different tables or select statements like in SQL)
comparing fields with other fields in the Tag and not only one field with one static value (e.g. select all contacts where field1 is greater than field2; or select all contacts where contact.field1 not equal parentcustomerid.field2) - across different linked entities