How to customize report i.e custom designing in reports

As I am new in erpnext I am having a problem in understanding of how to create custom report eg- Purchase Invoice Report ,…etc.
Anyone help’s would be kindly appreciated.

When I want to generate a query report it shows this error

Traceback (most recent call last):
File “/opt/erpnext/erpnext/apps/frappe/frappe/desk/form/save.py”, line 22, in savedocs
doc.save()
File “/opt/erpnext/erpnext/apps/frappe/frappe/model/document.py”, line 259, in save
return self._save(*args, **kwargs)
File “/opt/erpnext/erpnext/apps/frappe/frappe/model/document.py”, line 309, in _save
self.db_update()
File “/opt/erpnext/erpnext/apps/frappe/frappe/model/base_document.py”, line 357, in db_update
), list(d.values()) + [name])
File “/opt/erpnext/erpnext/apps/frappe/frappe/database/database.py”, line 155, in sql
self._cursor.execute(query, values)
File “/opt/erpnext/erpnext/env/lib/python2.7/site-packages/pymysql/cursors.py”, line 170, in execute
result = self._query(query)
File “/opt/erpnext/erpnext/env/lib/python2.7/site-packages/pymysql/cursors.py”, line 328, in _query
conn.query(q)
File “/opt/erpnext/erpnext/env/lib/python2.7/site-packages/pymysql/connections.py”, line 517, in query
self._affected_rows = self._read_query_result(unbuffered=unbuffered)
File “/opt/erpnext/erpnext/env/lib/python2.7/site-packages/pymysql/connections.py”, line 732, in _read_query_result
result.read()
File “/opt/erpnext/erpnext/env/lib/python2.7/site-packages/pymysql/connections.py”, line 1075, in read
first_packet = self.connection._read_packet()
File “/opt/erpnext/erpnext/env/lib/python2.7/site-packages/pymysql/connections.py”, line 684, in _read_packet
packet.check_error()
File “/opt/erpnext/erpnext/env/lib/python2.7/site-packages/pymysql/protocol.py”, line 220, in check_error
err.raise_mysql_exception(self._data)
File “/opt/erpnext/erpnext/env/lib/python2.7/site-packages/pymysql/err.py”, line 109, in raise_mysql_exception
raise errorclass(errno, errval)
ProgrammingError: (1064, u"You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ‘: ‘0’}, docstatus=0, parent=NULL, javascript=NULL, is_standard=‘Yes’, `a’ at line 2")

Traceback (most recent call last):
File “/opt/erpnext/erpnext/apps/frappe/frappe/app.py”, line 55, in application
response = frappe.handler.handle()
File “/opt/erpnext/erpnext/apps/frappe/frappe/handler.py”, line 20, in handle
data = execute_cmd(cmd)
File “/opt/erpnext/erpnext/apps/frappe/frappe/handler.py”, line 55, in execute_cmd
return frappe.call(method, **frappe.form_dict)
File “/opt/erpnext/erpnext/apps/frappe/frappe/init.py”, line 1022, in call
return fn(*args, **newargs)
File “/opt/erpnext/erpnext/apps/frappe/frappe/desk/form/save.py”, line 22, in savedocs
doc.save()
File “/opt/erpnext/erpnext/apps/frappe/frappe/model/document.py”, line 259, in save
return self._save(*args, **kwargs)
File “/opt/erpnext/erpnext/apps/frappe/frappe/model/document.py”, line 309, in _save
self.db_update()
File “/opt/erpnext/erpnext/apps/frappe/frappe/model/base_document.py”, line 357, in db_update
), list(d.values()) + [name])
File “/opt/erpnext/erpnext/apps/frappe/frappe/database/database.py”, line 155, in sql
self._cursor.execute(query, values)
File “/opt/erpnext/erpnext/env/lib/python2.7/site-packages/pymysql/cursors.py”, line 170, in execute
result = self._query(query)
File “/opt/erpnext/erpnext/env/lib/python2.7/site-packages/pymysql/cursors.py”, line 328, in _query
conn.query(q)
File “/opt/erpnext/erpnext/env/lib/python2.7/site-packages/pymysql/connections.py”, line 517, in query
self._affected_rows = self._read_query_result(unbuffered=unbuffered)
File “/opt/erpnext/erpnext/env/lib/python2.7/site-packages/pymysql/connections.py”, line 732, in _read_query_result
result.read()
File “/opt/erpnext/erpnext/env/lib/python2.7/site-packages/pymysql/connections.py”, line 1075, in read
first_packet = self.connection._read_packet()
File “/opt/erpnext/erpnext/env/lib/python2.7/site-packages/pymysql/connections.py”, line 684, in _read_packet
packet.check_error()
File “/opt/erpnext/erpnext/env/lib/python2.7/site-packages/pymysql/protocol.py”, line 220, in check_error
err.raise_mysql_exception(self._data)
File “/opt/erpnext/erpnext/env/lib/python2.7/site-packages/pymysql/err.py”, line 109, in raise_mysql_exception
raise errorclass(errno, errval)
ProgrammingError: (1064, u"You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ‘: ‘0’}, docstatus=0, parent=NULL, javascript=NULL, is_standard=‘Yes’, `a’ at line 2")

May be you can paste your SQL query.
Also you have to keep report standard = No