Anpassung SQL für Excel-Export

This commit is contained in:
Manfred Kindl
2019-06-12 14:58:51 +02:00
parent c2781c1f99
commit cb851ebf3b
+72 -42
View File
@@ -200,62 +200,92 @@ if(isset($_GET['excel']))
$studienplaene_list = implode(',', array_keys($studienplaene_arr)); $studienplaene_list = implode(',', array_keys($studienplaene_arr));
$qry = " $qry = "
SELECT SELECT DISTINCT rt_person_id,
rt_id, rt_id,
prestudent_id, '0' AS prestudent_id,
tbl_rt_person.person_id, tbl_rt_person.person_id,
vorname, vorname,
nachname, nachname,
ort_kurzbz, tbl_rt_person.ort_kurzbz,
studienplan_id, tbl_rt_person.studienplan_id,
studiengang_kz, tbl_prestudent.studiengang_kz,
gebdatum, gebdatum,
geschlecht, geschlecht,
punkte punkte,
,( (
SELECT SELECT kontakt
kontakt FROM tbl_kontakt
FROM WHERE kontakttyp = 'email'
public.tbl_kontakt
WHERE
kontakttyp = 'email'
AND person_id = tbl_rt_person.person_id AND person_id = tbl_rt_person.person_id
AND zustellung = true LIMIT 1 AND zustellung = true LIMIT 1
) AS email ) AS email,
,( (
SELECT SELECT ausbildungssemester
ausbildungssemester FROM PUBLIC.tbl_prestudentstatus
FROM
public.tbl_prestudentstatus
WHERE
prestudent_id = tbl_prestudent.prestudent_id
AND datum = (
SELECT MAX(datum)
FROM public.tbl_prestudentstatus
WHERE prestudent_id = tbl_prestudent.prestudent_id
AND status_kurzbz = 'Interessent'
) LIMIT 1
) AS ausbildungssemester
,(
SELECT orgform_kurzbz
FROM public.tbl_prestudentstatus
WHERE prestudent_id = tbl_prestudent.prestudent_id WHERE prestudent_id = tbl_prestudent.prestudent_id
AND datum = ( AND datum = (
SELECT MAX(datum) SELECT MAX(datum)
FROM public.tbl_prestudentstatus FROM PUBLIC.tbl_prestudentstatus
WHERE prestudent_id = tbl_prestudent.prestudent_id WHERE prestudent_id = tbl_prestudent.prestudent_id
AND status_kurzbz = 'Interessent' AND status_kurzbz = 'Interessent'
) LIMIT 1 ) LIMIT 1
) AS orgform_kurzbz ) AS ausbildungssemester,
FROM (
public.tbl_rt_person SELECT orgform_kurzbz
JOIN public.tbl_person USING (person_id) FROM PUBLIC.tbl_prestudentstatus
JOIN public.tbl_prestudent ON (tbl_rt_person.person_id=tbl_prestudent.person_id) WHERE prestudent_id = tbl_prestudent.prestudent_id
WHERE AND datum = (
rt_id = ".$db->db_add_param($reihungstest->reihungstest_id, FHC_INTEGER)." SELECT MAX(datum)
AND tbl_rt_person.studienplan_id IN(SELECT studienplan_id FROM public.tbl_prestudentstatus WHERE prestudent_id=tbl_prestudent.prestudent_id) FROM PUBLIC.tbl_prestudentstatus
ORDER BY WHERE prestudent_id = tbl_prestudent.prestudent_id
ort_kurzbz NULLS FIRST,nachname,vorname AND status_kurzbz = 'Interessent'
) LIMIT 1
) AS orgform_kurzbz
FROM PUBLIC.tbl_rt_person
JOIN PUBLIC.tbl_person USING (person_id)
JOIN PUBLIC.tbl_reihungstest rt ON (rt_id = rt.reihungstest_id)
JOIN PUBLIC.tbl_prestudent ON (tbl_rt_person.person_id = tbl_prestudent.person_id)
JOIN PUBLIC.tbl_prestudentstatus USING (prestudent_id)
WHERE rt_id = ".$db->db_add_param($reihungstest_id, FHC_INTEGER)."
AND tbl_rt_person.studienplan_id IN (
SELECT studienplan_id
FROM PUBLIC.tbl_prestudentstatus
WHERE prestudent_id = tbl_prestudent.prestudent_id
)
AND tbl_prestudentstatus.studiensemester_kurzbz IN (
SELECT studiensemester_kurzbz
FROM PUBLIC.tbl_studiensemester
WHERE studiensemester_kurzbz = rt.studiensemester_kurzbz
UNION
(
SELECT studiensemester_kurzbz
FROM PUBLIC.tbl_studiensemester
WHERE ende <= (
SELECT start
FROM PUBLIC.tbl_studiensemester
WHERE studiensemester_kurzbz = rt.studiensemester_kurzbz
)
ORDER BY ende DESC LIMIT 1
)
UNION
(
SELECT studiensemester_kurzbz
FROM PUBLIC.tbl_studiensemester
WHERE start >= (
SELECT ende
FROM PUBLIC.tbl_studiensemester
WHERE studiensemester_kurzbz = rt.studiensemester_kurzbz
)
ORDER BY start ASC LIMIT 1
)
)
ORDER BY ort_kurzbz NULLS FIRST,
nachname,
vorname
"; ";
$gebietbezeichnungen = array(); $gebietbezeichnungen = array();