Project

General

Profile

« Previous | Next » 

Revision 48139

integrated (hopefully) all required changes from dnet40

View differences:

queryPersons.sql
1
SELECT 	p.id 					        as personid,
2
		p.firstname               		as firstname,		
3
		p.secondnames                  	as secondnames,
4
		CASE WHEN length(p.secondnames) > 0 THEN trim(both from p.secondnames||', '||p.firstname) ELSE p.firstname END as fullname,
5
		p.fax			          		as fax,
6
		p.email							as email,
7
		p.phone		               		as phone,
8
		p.dateofcollection				as dateofcollection,
9
		p.inferred						as inferred,
10
		p.deletedbyinference			as deletedbyinference,
11
		p.trust							as trust,
12
		p.inferenceprovenance			as inferenceprovenance,
13
		dc.id							as collectedfromid,
14
		dc.officialname					as collectedfromname,
15
		
16
		nc.code || '@@@' || nc.name || '@@@' || ns.code || '@@@' || ns.name	as nationality,
17
		pac.code || '@@@' || pac.name || '@@@' || pas.code || '@@@' || pas.name	as provenanceaction,
1
SELECT
2
	p.id                                                                    AS personid,
3
	p.firstname                                                             AS firstname,
4
	p.secondnames                                                           AS secondnames,
5
	CASE WHEN length(p.secondnames) > 0
6
		THEN trim(BOTH FROM p.secondnames || ', ' || p.firstname)
7
	ELSE p.firstname END                                                    AS fullname,
8
	p.fax                                                                   AS fax,
9
	p.email                                                                 AS email,
10
	p.phone                                                                 AS phone,
11
	p.dateofcollection                                                      AS dateofcollection,
12
	p.inferred                                                              AS inferred,
13
	p.deletedbyinference                                                    AS deletedbyinference,
14
	p.trust                                                                 AS trust,
15
	p.inferenceprovenance                                                   AS inferenceprovenance,
16
	dc.id                                                                   AS collectedfromid,
17
	dc.officialname                                                         AS collectedfromname,
18 18

  
19
	  array_agg(DISTINCT i.pid || '###' || i.issuertypeclass)	as pid
20
		
19
	nc.code || '@@@' || nc.name || '@@@' || ns.code || '@@@' || ns.name     AS nationality,
20
	pac.code || '@@@' || pac.name || '@@@' || pas.code || '@@@' || pas.name AS provenanceaction,
21

  
22
	array_agg(DISTINCT i.pid || '###' || i.issuertypeclass)                 AS pid
23

  
21 24
FROM persons p
22
	left outer join class nc on (nc.code = p.nationalityclass)	
23
	left outer join scheme ns on (ns.code = p.nationalityscheme)
24
	
25
	left outer join class pac on (pac.code = p.provenanceactionclass)	
26
	left outer join scheme pas on (pas.code = p.provenanceactionscheme)	
27
	
28
	left outer join datasources dc on (dc.id = p.collectedfrom)
25
	LEFT OUTER JOIN class nc ON (nc.code = p.nationalityclass)
26
	LEFT OUTER JOIN scheme ns ON (ns.code = p.nationalityscheme)
29 27

  
30
	left outer join personpids pp on (pp.person = p.id)
31
	left outer join identities i on (i.pid = pp.pid)
32
	
33
	left outer join project_organization po on (po.contactperson = p.id)
34
	
35
WHERE (p.firstname is not null OR p.secondnames is not null) AND po.resporganization is not null
36
	
28
	LEFT OUTER JOIN class pac ON (pac.code = p.provenanceactionclass)
29
	LEFT OUTER JOIN scheme pas ON (pas.code = p.provenanceactionscheme)
30

  
31
	LEFT OUTER JOIN datasources dc ON (dc.id = p.collectedfrom)
32

  
33
	LEFT OUTER JOIN personpids pp ON (pp.person = p.id)
34
	LEFT OUTER JOIN identities i ON (i.pid = pp.pid)
35

  
36
	LEFT OUTER JOIN project_organization po ON (po.contactperson = p.id)
37

  
38
WHERE (p.firstname IS NOT NULL OR p.secondnames IS NOT NULL) AND po.resporganization IS NOT NULL
39

  
37 40
GROUP BY
38
		p.id,
39
		p.firstname,		
40
		p.secondnames,
41
		p.fax,
42
		p.email,
43
		p.phone,
44
		p.dateofcollection,
45
		p.inferred,
46
		p.deletedbyinference,
47
		p.trust,
48
		p.inferenceprovenance,
49
		dc.id,
50
		dc.officialname,		
51
		nc.code, nc.name, ns.code, ns.name,
52
		pac.code, pac.name, pas.code, pas.name
41
	p.id,
42
	p.firstname,
43
	p.secondnames,
44
	p.fax,
45
	p.email,
46
	p.phone,
47
	p.dateofcollection,
48
	p.inferred,
49
	p.deletedbyinference,
50
	p.trust,
51
	p.inferenceprovenance,
52
	dc.id,
53
	dc.officialname,
54
	nc.code, nc.name, ns.code, ns.name,
55
	pac.code, pac.name, pas.code, pas.name

Also available in: Unified diff