From cb851ebf3bb0498c0fe7e768f18df9faef2d3e08 Mon Sep 17 00:00:00 2001 From: Manfred Kindl Date: Wed, 12 Jun 2019 14:58:51 +0200 Subject: [PATCH] =?UTF-8?q?Anpassung=20SQL=20f=C3=BCr=20Excel-Export?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- vilesci/stammdaten/reihungstestverwaltung.php | 114 +++++++++++------- 1 file changed, 72 insertions(+), 42 deletions(-) diff --git a/vilesci/stammdaten/reihungstestverwaltung.php b/vilesci/stammdaten/reihungstestverwaltung.php index 8d5b1746f..244cac6d7 100644 --- a/vilesci/stammdaten/reihungstestverwaltung.php +++ b/vilesci/stammdaten/reihungstestverwaltung.php @@ -200,62 +200,92 @@ if(isset($_GET['excel'])) $studienplaene_list = implode(',', array_keys($studienplaene_arr)); $qry = " - SELECT + SELECT DISTINCT rt_person_id, rt_id, - prestudent_id, + '0' AS prestudent_id, tbl_rt_person.person_id, vorname, nachname, - ort_kurzbz, - studienplan_id, - studiengang_kz, + tbl_rt_person.ort_kurzbz, + tbl_rt_person.studienplan_id, + tbl_prestudent.studiengang_kz, gebdatum, geschlecht, - punkte - ,( - SELECT - kontakt - FROM - public.tbl_kontakt - WHERE - kontakttyp = 'email' + punkte, + ( + SELECT kontakt + FROM tbl_kontakt + WHERE kontakttyp = 'email' AND person_id = tbl_rt_person.person_id AND zustellung = true LIMIT 1 - ) AS email - ,( - SELECT - ausbildungssemester - 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 + ) AS email, + ( + SELECT ausbildungssemester + FROM PUBLIC.tbl_prestudentstatus WHERE prestudent_id = tbl_prestudent.prestudent_id AND datum = ( SELECT MAX(datum) - FROM public.tbl_prestudentstatus + FROM PUBLIC.tbl_prestudentstatus WHERE prestudent_id = tbl_prestudent.prestudent_id AND status_kurzbz = 'Interessent' ) LIMIT 1 - ) AS orgform_kurzbz - FROM - public.tbl_rt_person - JOIN public.tbl_person USING (person_id) - JOIN public.tbl_prestudent ON (tbl_rt_person.person_id=tbl_prestudent.person_id) - WHERE - rt_id = ".$db->db_add_param($reihungstest->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) - ORDER BY - ort_kurzbz NULLS FIRST,nachname,vorname + ) AS ausbildungssemester, + ( + SELECT orgform_kurzbz + 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 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();