41 lines
1.4 KiB
Python
41 lines
1.4 KiB
Python
import sqlite3
|
|
conn = sqlite3.connect('data/realestate.db')
|
|
conn.row_factory = sqlite3.Row
|
|
|
|
# All documents
|
|
rows = conn.execute('''
|
|
SELECT d.id, d.person_id, d.request_number, d.search_scope, d.page_info,
|
|
d.page_number, d.pdf_group_id, d.status,
|
|
p.first_name, p.family_name
|
|
FROM documents d
|
|
LEFT JOIN persons p ON p.id = d.person_id
|
|
ORDER BY d.id
|
|
''').fetchall()
|
|
|
|
print("=== ALL documents ===")
|
|
for r in rows:
|
|
d = dict(r)
|
|
print("id=%s status=%s person_id=%s req=%r scope=%r page_info=%r pdf=%r name=%s %s" % (
|
|
d['id'], d['status'], d['person_id'], d['request_number'],
|
|
d['search_scope'], d['page_info'], d['pdf_group_id'],
|
|
d['first_name'], d['family_name']))
|
|
|
|
# Persons
|
|
print("\n=== Persons ===")
|
|
persons = conn.execute('SELECT id, first_name, father_name, family_name FROM persons ORDER BY id').fetchall()
|
|
for p in persons:
|
|
d = dict(p)
|
|
print("id=%s %s %s %s" % (d['id'], d['first_name'], d['father_name'], d['family_name']))
|
|
|
|
# Potential duplicate persons
|
|
print("\n=== Potential duplicate persons ===")
|
|
dups = conn.execute('''
|
|
SELECT p1.id AS pid1, p2.id AS pid2, p1.first_name, p1.family_name
|
|
FROM persons p1
|
|
JOIN persons p2 ON p1.id < p2.id
|
|
AND p1.first_name = p2.first_name
|
|
AND COALESCE(p1.family_name,'') = COALESCE(p2.family_name,'')
|
|
''').fetchall()
|
|
for d in dups:
|
|
print(dict(d))
|