um Ehrungen (150 Jahre Vereinsmitglied, 70 Jahre in der Vorstandschaft etc) herauszusuchen, wäre ein Modul "Rollenjubiläum" interessant. Der passende SQL dazu (Kann man zur Not natürlich auch ohne Oberfläche nutzen):
Code: Alles auswählen
select
adm_members.mem_usr_id AS mem_User_ID,
EXTRACT(YEAR FROM mem_begin) AS Beginn,
EXTRACT(YEAR FROM CURDATE()) AS Aktuelles_Jahr,
EXTRACT(YEAR FROM CURDATE()) - EXTRACT(YEAR FROM mem_begin) AS Jahre_Mitgliedschaft,
adm_roles.rol_name AS Rolle,
tbl_nachname.Nachname AS Nachname,
tbl_vorname.Vorname AS Vorname
from
adm_members
INNER JOIN adm_roles ON adm_members.mem_rol_id = adm_roles.rol_id
INNER JOIN
(select adm_user_data.usd_usr_id AS User_ID, usd_value AS Nachname
from adm_user_data inner Join adm_user_fields on adm_user_data.usd_usf_id=adm_user_fields.usf_id
where adm_user_fields.usf_name_intern = 'LAST_NAME') AS tbl_nachname
ON adm_members.mem_usr_id = tbl_nachname.User_ID
INNER JOIN
(select adm_user_data.usd_usr_id AS User_ID, usd_value AS Vorname
from adm_user_data inner Join adm_user_fields on adm_user_data.usd_usf_id=adm_user_fields.usf_id
where adm_user_fields.usf_name_intern = 'FIRST_NAME') AS tbl_vorname
ON adm_members.mem_usr_id = tbl_vorname.User_ID
where
/* Mitgliedschaft nicht beendet */
adm_members.mem_end > CURDATE()
Having
/* Jahre Mitgliedschaft eine 'Runde' Zahl */
Jahre_Mitgliedschaft='10'
OR Jahre_Mitgliedschaft='15'
OR Jahre_Mitgliedschaft='20'
OR Jahre_Mitgliedschaft='25'
OR Jahre_Mitgliedschaft='30'
OR Jahre_Mitgliedschaft='40'
OR Jahre_Mitgliedschaft='50'
OR Jahre_Mitgliedschaft='60'
OR Jahre_Mitgliedschaft='65'
OR Jahre_Mitgliedschaft='70'
OR Jahre_Mitgliedschaft='75'
OR Jahre_Mitgliedschaft='80'
OR Jahre_Mitgliedschaft='85'
OR Jahre_Mitgliedschaft='90'
Order by mem_User_ID
Guten Rutsch!!!