<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://doc-en-mirror.openflyers.com/index.php?action=history&amp;feed=atom&amp;title=Users-reports-3</id>
	<title>Users reports 3 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://doc-en-mirror.openflyers.com/index.php?action=history&amp;feed=atom&amp;title=Users-reports-3"/>
	<link rel="alternate" type="text/html" href="https://doc-en-mirror.openflyers.com/index.php?title=Users-reports-3&amp;action=history"/>
	<updated>2026-05-01T14:21:05Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.39.6</generator>
	<entry>
		<id>https://doc-en-mirror.openflyers.com/index.php?title=Users-reports-3&amp;diff=281&amp;oldid=prev</id>
		<title>imported&gt;Claratte: Text replacement - &quot;&lt;sql&gt;&quot; to &quot;&lt;syntaxhighlight lang=&quot;sql&quot;&gt;&quot;</title>
		<link rel="alternate" type="text/html" href="https://doc-en-mirror.openflyers.com/index.php?title=Users-reports-3&amp;diff=281&amp;oldid=prev"/>
		<updated>2024-08-12T18:53:06Z</updated>

		<summary type="html">&lt;p&gt;Text replacement - &amp;quot;&amp;lt;sql&amp;gt;&amp;quot; to &amp;quot;&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot;&amp;gt;&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;=Personal details (with profile X and/or validity Y expiring at a date posterior or equal to Z)=&lt;br /&gt;
&lt;br /&gt;
* Variable '''$date''' should be defined first and should be of '''Date''' value type.&lt;br /&gt;
* Variable '''$profileId''' should be defined first and should be of '''dbObject::Profile''' value type.&lt;br /&gt;
* Variable '''$validityTypeId''' should be defined first and should be of '''dbObject::ValidityType''' value type.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot;&amp;gt;[OF_DYNAMIC_SQL]&lt;br /&gt;
SELECT CONCAT(&lt;br /&gt;
    'SELECT last_name AS Nom, first_name AS Prénom, (SELECT GROUP_CONCAT(name) FROM profile WHERE person.profile &amp;amp; profile.id ORDER BY profile.name) AS Profils,&lt;br /&gt;
            person.name AS Login, email AS Email, DATE_FORMAT(birthdate, \'%d/%m/%Y\') AS \'Date naissance\', address AS Adresse, zipcode AS \'Code postal\', city AS Ville, state AS Etat, country AS Pays, home_phone AS \'Téléphone domicile\', work_phone AS \'Téléphone travail\', cell_phone AS \'Téléphone mobile\', ',&lt;br /&gt;
    IFNULL(GROUP_CONCAT(&lt;br /&gt;
        CONCAT(&lt;br /&gt;
            ' (SELECT extra_field_content.content FROM extra_field_content WHERE person.id=extra_field_content.category_id AND extra_field_content.extra_field_id=',&lt;br /&gt;
            extra_field.id,&lt;br /&gt;
            ') AS \'',&lt;br /&gt;
            REPLACE(extra_field.label, '\'', '\\\''),&lt;br /&gt;
            '\''&lt;br /&gt;
        )&lt;br /&gt;
    ), '\'_\''),&lt;br /&gt;
    ', IF(grant_date IS NOT NULL, DATE_FORMAT(grant_date, \'%d/%m/%Y\'), \'-\') AS \'Date obtention\',&lt;br /&gt;
    IF(expire_date IS NOT NULL, DATE_FORMAT(expire_date, \'%d/%m/%Y\'), \'-\') AS \'Limite de validité\',&lt;br /&gt;
    IF(ident_value IS NOT NULL, ident_value, \'-\') AS \'Code identifiant\'&lt;br /&gt;
    FROM person&lt;br /&gt;
    LEFT JOIN profile ON (person.profile &amp;amp; profile.id)&lt;br /&gt;
    LEFT JOIN validity ON (person.id=validity.person_id)&lt;br /&gt;
    LEFT JOIN validity_type ON (validity_type.id=validity.validity_type_id)&lt;br /&gt;
    WHERE person.activated=1&lt;br /&gt;
      AND ( profile.id IN (', IF('-'=$profileId, '\'-\'', $profileId), ') OR \'-\' IN (', IF('-'=$profileId, '\'-\'', $profileId), ') )&lt;br /&gt;
      AND (&lt;br /&gt;
          (validity.validity_type_id IN (', IF('-'=$validityTypeId, '\'-\'', $validityTypeId), ') AND validity_type.time_limitation=1 AND validity.expire_date &amp;gt;= \'$date\')&lt;br /&gt;
          OR&lt;br /&gt;
          \'-\' IN (', IF('-'=$validityTypeId, '\'-\'', $validityTypeId), ')&lt;br /&gt;
      )&lt;br /&gt;
    GROUP BY person.id&lt;br /&gt;
    ORDER BY last_name, first_name'&lt;br /&gt;
)&lt;br /&gt;
FROM extra_field&lt;br /&gt;
WHERE extra_field.category='PERSON'&amp;lt;/sql&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=User e-mails list=&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot;&amp;gt;SELECT CONCAT(person.first_name, ' ', person.last_name, ' &amp;lt;', person.email, '&amp;gt;') AS emails&lt;br /&gt;
FROM person&lt;br /&gt;
WHERE person.activated=1&lt;br /&gt;
ORDER BY person.last_name, person.first_name&amp;lt;/sql&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Users by validity=&lt;br /&gt;
Following extra field required:&lt;br /&gt;
*validityTypeId (Type: dbObject:ValidityType)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot;&amp;gt;SELECT validity_type.name AS 'Validity',&lt;br /&gt;
    DATE_FORMAT(grant_date,'%d/%m/%Y') AS Date_d_obtention,&lt;br /&gt;
    last_name AS Name,&lt;br /&gt;
    first_name AS Firstname,&lt;br /&gt;
    ident_value AS Comment&lt;br /&gt;
FROM validity_type&lt;br /&gt;
LEFT JOIN validity ON validity.validity_type_id =validity_type.id &lt;br /&gt;
LEFT JOIN person ON person.id=validity.person_id&lt;br /&gt;
WHERE ( validity_type.id IN ('$validityTypeId') OR ('-') IN ('$validityTypeId') )&lt;br /&gt;
  AND person.activated=1&lt;br /&gt;
ORDER BY Name, Firstname&amp;lt;/sql&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Validities (all) obtained after the selected year=&lt;br /&gt;
&lt;br /&gt;
* Variable '''$year''' should be defined first and should be of '''Year''' value type.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot;&amp;gt;SELECT validity_type.name AS 'Validity',&lt;br /&gt;
    DATE_FORMAT(grant_date,'%d/%m/%Y') AS Date,&lt;br /&gt;
    last_name AS Name,&lt;br /&gt;
    first_name AS Firstname,&lt;br /&gt;
    ident_value AS Comment&lt;br /&gt;
FROM validity_type&lt;br /&gt;
LEFT JOIN validity ON validity.validity_type_id=validity_type.id &lt;br /&gt;
LEFT JOIN person ON person.id=validity.person_id&lt;br /&gt;
WHERE YEAR(grant_date)&amp;gt;$year AND person.activated=1&lt;br /&gt;
ORDER BY Validity, Name, Firstname&amp;lt;/sql&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Users with address=&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot;&amp;gt;SELECT &lt;br /&gt;
	last_name, &lt;br /&gt;
	first_name, &lt;br /&gt;
	name AS login, &lt;br /&gt;
	email, &lt;br /&gt;
	address, &lt;br /&gt;
	zipcode, &lt;br /&gt;
	city AS Ville, &lt;br /&gt;
	state AS etat_region, &lt;br /&gt;
	country AS pays, &lt;br /&gt;
	home_phone AS tel_domicile, &lt;br /&gt;
	work_phone AS tel_travail, &lt;br /&gt;
	cell_phone AS tel_mobile&lt;br /&gt;
FROM person&lt;br /&gt;
WHERE activated=1&lt;br /&gt;
ORDER BY last_name,first_name&amp;lt;/sql&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Users with address and registration date (using ExtraField)=&lt;br /&gt;
Extra field required :&lt;br /&gt;
#registrationDate&lt;br /&gt;
#*label : Registration date&lt;br /&gt;
#*category : User&lt;br /&gt;
#*value type : DateTime&lt;br /&gt;
&lt;br /&gt;
Validity type required :&lt;br /&gt;
#Cotisation&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot;&amp;gt;SELECT &lt;br /&gt;
    last_name, &lt;br /&gt;
    first_name,&lt;br /&gt;
    email, &lt;br /&gt;
    address, &lt;br /&gt;
    zipcode, &lt;br /&gt;
    city, &lt;br /&gt;
    state, &lt;br /&gt;
    country, &lt;br /&gt;
    home_phone, &lt;br /&gt;
    work_phone,&lt;br /&gt;
    cell_phone, &lt;br /&gt;
    sex,&lt;br /&gt;
    DATE_FORMAT(birthdate, '%Y-%m-%d') AS birthdate,&lt;br /&gt;
    nationality,&lt;br /&gt;
    validity.grant_date AS subscription_date,&lt;br /&gt;
    (&lt;br /&gt;
        SELECT DATE_FORMAT(extra_field_content.content, '%Y-%m-%d')&lt;br /&gt;
        FROM extra_field&lt;br /&gt;
        LEFT JOIN extra_field_content ON extra_field.id=extra_field_content.extra_field_id&lt;br /&gt;
        WHERE extra_field.variable=&amp;quot;registrationDate&amp;quot; and extra_field_content.category_id=person.id&lt;br /&gt;
    )AS registration_date&lt;br /&gt;
FROM person&lt;br /&gt;
LEFT JOIN validity ON (validity.person_id = person.id)&lt;br /&gt;
LEFT JOIN validity_type ON (validity_type.id = validity.validity_type_id)&lt;br /&gt;
WHERE activated = 1 AND validity_type.name = 'Cotisation'&lt;br /&gt;
ORDER BY last_name, first_name&amp;lt;/sql&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Users with address and registration date (using Validity)=&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot;&amp;gt;SELECT&lt;br /&gt;
person.last_name,&lt;br /&gt;
person.first_name,&lt;br /&gt;
validity.grant_date AS registration_date&lt;br /&gt;
FROM person&lt;br /&gt;
LEFT JOIN validity ON validity.person_id=person.id&lt;br /&gt;
LEFT JOIN validity_type ON validity_type.id=validity.validity_type_id&lt;br /&gt;
WHERE validity_type.name = &amp;quot;Date d'inscription&amp;quot; AND person.activated=1&lt;br /&gt;
GROUP BY last_name, first_name&amp;lt;/sql&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=User emails list of selected validity type person equals given year=&lt;br /&gt;
Following extra field required:&lt;br /&gt;
*validityTypeId (Type: dbObject:ValidityType)&lt;br /&gt;
*year (Type: Year)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot;&amp;gt;SELECT CONCAT(person.first_name, ' ', person.last_name, ' &amp;lt;', person.email, '&amp;gt;') AS emails&lt;br /&gt;
FROM person&lt;br /&gt;
LEFT JOIN validity ON (validity.person_id = person.id)&lt;br /&gt;
LEFT JOIN validity_type ON (validity_type.id = validity.validity_type_id)&lt;br /&gt;
WHERE person.activated=1&lt;br /&gt;
  AND YEAR(validity.expire_date) = $year&lt;br /&gt;
  AND ( validity_type.id IN ('$validityTypeId') OR '-' IN ('$validityTypeId') )&lt;br /&gt;
GROUP BY person.id&lt;br /&gt;
ORDER BY person.last_name, person.first_name&amp;lt;/sql&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Users with e-mails with up-to-date expire date of validity VVV=&lt;br /&gt;
Following symbols should be replace:&lt;br /&gt;
*VVV : validity type id&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot;&amp;gt;SELECT CONCAT(person.first_name, ' ', person.last_name, ' &amp;lt;', person.email, '&amp;gt;') AS emails&lt;br /&gt;
FROM person&lt;br /&gt;
LEFT JOIN validity ON (validity.person_id = person.id)&lt;br /&gt;
LEFT JOIN validity_type ON (validity_type.id = validity.validity_type_id)&lt;br /&gt;
WHERE person.activated=1 AND validity.expire_date &amp;gt; NOW() AND validity_type.id = VVV&lt;br /&gt;
ORDER BY last_name,first_name&amp;lt;/sql&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Users with validity ending before a specific date=&lt;br /&gt;
Following extra field required:&lt;br /&gt;
*endDate (Type: Date)&lt;br /&gt;
*validityTypeId (Type: dbObject:ValidityType)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot;&amp;gt;SELECT person.id, person.first_name, person.last_name, validity_type.name AS 'Validity'&lt;br /&gt;
FROM person&lt;br /&gt;
LEFT JOIN validity ON (validity.person_id = person.id)&lt;br /&gt;
LEFT JOIN validity_type ON (validity_type.id = validity.validity_type_id)&lt;br /&gt;
WHERE person.activated=1 AND validity.grant_date &amp;lt;= '$endDate'&lt;br /&gt;
  AND validity_type.id = '$validityTypeId'&amp;lt;/sql&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Users with up-to-date validity X and Y and user details=&lt;br /&gt;
Replace X and Y by the validity_type id (2 times).&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot;&amp;gt;SELECT CONCAT(last_name, ' ', first_name) AS 'User',&lt;br /&gt;
validity_type.name AS 'Validity name',&lt;br /&gt;
expire_date AS 'Expire date',&lt;br /&gt;
DATE_FORMAT(birthdate, '%Y/%m/%d') AS 'Birthdate',&lt;br /&gt;
email,&lt;br /&gt;
CONCAT (address, ' ', zipcode, ' ', city, ' ', state, ' ', country) AS 'Adress',&lt;br /&gt;
home_phone AS 'Home phone',&lt;br /&gt;
work_phone AS 'Work phone',&lt;br /&gt;
cell_phone AS 'Cell phone'&lt;br /&gt;
FROM person&lt;br /&gt;
LEFT JOIN validity ON person.id=validity.person_id&lt;br /&gt;
LEFT JOIN validity_type ON validity_type.id=validity.validity_type_id&lt;br /&gt;
WHERE validity_type.time_limitation=1 AND (validity_type.id=X OR validity_type.id=Y)&lt;br /&gt;
AND person.id IN&lt;br /&gt;
    ( SELECT person.id FROM person&lt;br /&gt;
    LEFT JOIN validity ON person.id=validity.person_id&lt;br /&gt;
    LEFT JOIN validity_type ON validity_type.id=validity.validity_type_id&lt;br /&gt;
    WHERE person.activated=1 AND (validity_type.id=X OR validity_type.id=Y) AND validity.expire_date &amp;gt;= UTC_DATE() )&lt;br /&gt;
 ORDER BY last_name, first_name, validity_type.name&amp;lt;/sql&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Users with validities viewer=&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot;&amp;gt;SELECT &lt;br /&gt;
      last_name AS &amp;quot;Last name&amp;quot;,&lt;br /&gt;
      first_name AS &amp;quot;First name&amp;quot;,&lt;br /&gt;
      validity_type.name AS &amp;quot;Validity&amp;quot;,&lt;br /&gt;
      DATE_FORMAT(expire_date,'%d/%m/%Y') AS &amp;quot;Expiration date&amp;quot;,&lt;br /&gt;
      IF((DATEDIFF(DATE(expire_date),DATE(Now())) &amp;lt; 0), &amp;quot;Expired&amp;quot;,&amp;quot;&amp;quot;) AS &amp;quot;Expired&amp;quot;,&lt;br /&gt;
      DATE_FORMAT(grant_date,'%d/%m/%Y') AS &amp;quot;Obtention date&amp;quot;&lt;br /&gt;
   FROM validity_type&lt;br /&gt;
   LEFT JOIN validity ON validity.validity_type_id = validity_type.id &lt;br /&gt;
   LEFT JOIN person ON person.id=validity.person_id&lt;br /&gt;
WHERE person.activated = 1&lt;br /&gt;
ORDER BY Last_name, First_name, validity_type.name&amp;lt;/sql&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Users with age and birth date=&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot;&amp;gt;(SELECT last_name AS Last_name,&lt;br /&gt;
&lt;br /&gt;
first_name AS First_name, &lt;br /&gt;
&lt;br /&gt;
DATE_FORMAT(birthdate ,'%d-%m-%Y') AS Birth_date, &lt;br /&gt;
&lt;br /&gt;
IF ( (sex = 0), 'Man', 'Woman' ) AS sex,&lt;br /&gt;
&lt;br /&gt;
(DATE_FORMAT(DATE('$day'), '%Y') - &lt;br /&gt;
DATE_FORMAT(birthdate, '%Y') - &lt;br /&gt;
(SELECT DATE_FORMAT(DATE('$day'), '00-%m-%d') &amp;lt; DATE_FORMAT( birthdate, '00-%m-%d'))) AS 'age',&lt;br /&gt;
&lt;br /&gt;
DATE_FORMAT(DATE('$day'),'%d-%m-%Y') AS on_date,&lt;br /&gt;
&lt;br /&gt;
IF((DATE_FORMAT(DATE('$day'), '%Y') - &lt;br /&gt;
DATE_FORMAT(birthdate, '%Y') - &lt;br /&gt;
(SELECT DATE_FORMAT(DATE('$day'), '00-%m-%d') &amp;lt; DATE_FORMAT( birthdate, '00-%m-%d')))&amp;gt;=21, '&amp;gt;= 21', '&amp;lt; 21') AS Major,&lt;br /&gt;
&lt;br /&gt;
-- inscription_date,&lt;br /&gt;
&lt;br /&gt;
-- member.subscription,&lt;br /&gt;
&lt;br /&gt;
-- entry.account_date as Adhesion&lt;br /&gt;
DATE_FORMAT(entry.account_date,'%d-%m-%Y') as Grant_date&lt;br /&gt;
&lt;br /&gt;
-- ,MAX(entry.account_date)&lt;br /&gt;
&lt;br /&gt;
-- , $day&lt;br /&gt;
-- , entry.flow_id&lt;br /&gt;
-- , account.name&lt;br /&gt;
&lt;br /&gt;
FROM person&lt;br /&gt;
&lt;br /&gt;
RIGHT JOIN validity ON validity.person_id = person.id &lt;br /&gt;
&lt;br /&gt;
RIGHT JOIN account acc2 on acc2.owner_id = person.id&lt;br /&gt;
&lt;br /&gt;
RIGHT JOIN account_entry linked_entry on linked_entry.account_id = acc2.id&lt;br /&gt;
&lt;br /&gt;
RIGHT JOIN account_entry entry on linked_entry.flow_id = entry.flow_id&lt;br /&gt;
&lt;br /&gt;
RIGHT JOIN account on entry.account_id = account.id &lt;br /&gt;
&lt;br /&gt;
WHERE year(validity.grant_date) = $year&lt;br /&gt;
&lt;br /&gt;
AND account.name = 'Cotisations ACB'&lt;br /&gt;
&lt;br /&gt;
AND (year(entry.account_date)=$year OR (year(entry.account_date)=$year -1 AND month(entry.account_date)=12) )&lt;br /&gt;
&lt;br /&gt;
AND entry.account_date &amp;lt; DATE('$day')&lt;br /&gt;
&lt;br /&gt;
ORDER BY Last_name  LIMIT 999999&lt;br /&gt;
)&lt;br /&gt;
UNION&lt;br /&gt;
(&lt;br /&gt;
SELECT COUNT(*) AS Last_name,&lt;br /&gt;
&lt;br /&gt;
COUNT(*) AS First_name, &lt;br /&gt;
&lt;br /&gt;
COUNT(*) AS Birth_date, &lt;br /&gt;
&lt;br /&gt;
COUNT(*) AS sex,&lt;br /&gt;
&lt;br /&gt;
COUNT(*) AS 'age',&lt;br /&gt;
&lt;br /&gt;
COUNT(*) AS on_date,&lt;br /&gt;
&lt;br /&gt;
COUNT(*) AS Major,&lt;br /&gt;
&lt;br /&gt;
COUNT(*) as Grant_date&lt;br /&gt;
&lt;br /&gt;
FROM person&lt;br /&gt;
&lt;br /&gt;
RIGHT JOIN validity ON validity.person_id = person.id &lt;br /&gt;
&lt;br /&gt;
RIGHT JOIN account acc2 on acc2.owner_id = person.id&lt;br /&gt;
&lt;br /&gt;
RIGHT JOIN account_entry linked_entry on linked_entry.account_id = acc2.id&lt;br /&gt;
&lt;br /&gt;
RIGHT JOIN account_entry entry on linked_entry.flow_id = entry.flow_id&lt;br /&gt;
&lt;br /&gt;
RIGHT JOIN account on entry.account_id = account.id &lt;br /&gt;
&lt;br /&gt;
WHERE year(validity.grant_date) = $year&lt;br /&gt;
&lt;br /&gt;
AND account.name = 'Cotisations ACB'&lt;br /&gt;
&lt;br /&gt;
AND (year(entry.account_date)=$year OR (year(entry.account_date)=$year -1 AND month(entry.account_date)=12) )&lt;br /&gt;
&lt;br /&gt;
AND entry.account_date &amp;lt; DATE('$day')&lt;br /&gt;
)&amp;lt;/sql&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Users having validity X and grant date greater or equal to year Y=&lt;br /&gt;
Following extra field required:&lt;br /&gt;
*validityTypeId (Type: dbObject:ValidityType)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot;&amp;gt;SELECT validity_type.name AS 'Validity',&lt;br /&gt;
    DATE_FORMAT(grant_date, '%d/%m/%Y') AS grant_date,&lt;br /&gt;
    last_name AS Name,&lt;br /&gt;
    first_name AS Firstname,&lt;br /&gt;
    ident_value AS Comment,&lt;br /&gt;
    ( SELECT GROUP_CONCAT(profile.name SEPARATOR ', ') &lt;br /&gt;
      FROM profile WHERE (person.profile &amp;amp; profile.id)&lt;br /&gt;
    )AS Profile&lt;br /&gt;
FROM validity_type&lt;br /&gt;
LEFT JOIN validity ON validity.validity_type_id=validity_type.id &lt;br /&gt;
LEFT JOIN person ON person.id=validity.person_id&lt;br /&gt;
WHERE YEAR(grant_date)&amp;gt;=$year&lt;br /&gt;
AND validity_type.id='$validityTypeId'&lt;br /&gt;
AND person.activated=1&lt;br /&gt;
ORDER BY Name, Firstname&amp;lt;/sql&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Users with registration date, profiles and total flight time=&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot;&amp;gt;SELECT&lt;br /&gt;
person.last_name,&lt;br /&gt;
person.first_name,&lt;br /&gt;
validity.grant_date AS registration_date,&lt;br /&gt;
person.birthdate AS birthdate,&lt;br /&gt;
IF ( (person.sex = 0), 'M', 'F' ) AS Gender,&lt;br /&gt;
( &lt;br /&gt;
    SELECT GROUP_CONCAT(profile.name SEPARATOR ', ') &lt;br /&gt;
    FROM profile WHERE (person.profile &amp;amp; profile.id)&lt;br /&gt;
)AS Profile,&lt;br /&gt;
IFNULL(( &lt;br /&gt;
    SELECT&lt;br /&gt;
      CONCAT(FLOOR(SUM( flight.duration )/600),':',TIME_FORMAT(SEC_TO_TIME((SUM( flight.duration )/600 - FLOOR(SUM( flight.duration )/600))*3600),'%i')) AS Total &lt;br /&gt;
    FROM flight_pilot fp &lt;br /&gt;
    LEFT JOIN flight ON fp.flight_id=flight.id &lt;br /&gt;
    WHERE fp.pilot_id=person.id AND fp.num=0&lt;br /&gt;
), 0) AS Total_flight_time&lt;br /&gt;
FROM person&lt;br /&gt;
LEFT JOIN validity ON validity.person_id=person.id&lt;br /&gt;
LEFT JOIN validity_type ON validity_type.id=validity.validity_type_id&lt;br /&gt;
WHERE validity_type.name = &amp;quot;Date d'inscription&amp;quot; AND person.activated=1&lt;br /&gt;
GROUP BY last_name, first_name&amp;lt;/sql&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Users with email=&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot;&amp;gt;SELECT last_name, first_name, email&lt;br /&gt;
FROM person&lt;br /&gt;
WHERE activated=1&lt;br /&gt;
ORDER BY last_name, first_name&amp;lt;/sql&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Users with expire date validity equals a given year=&lt;br /&gt;
Following extra field required:&lt;br /&gt;
*validityTypeId (Type: dbObject:ValidityType)&lt;br /&gt;
*year (Type: Year)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot;&amp;gt;SELECT person.id, person.first_name, person.last_name, validity_type.name AS 'Validity'&lt;br /&gt;
FROM person&lt;br /&gt;
LEFT JOIN validity ON (validity.person_id = person.id)&lt;br /&gt;
LEFT JOIN validity_type ON (validity_type.id = validity.validity_type_id)&lt;br /&gt;
WHERE person.activated=1 AND YEAR(validity.expire_date) = $year AND validity_type.id = '$validityTypeId'&amp;lt;/sql&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Users with validity expired date prior to 01/month/year=&lt;br /&gt;
Following extra field required:&lt;br /&gt;
*validityTypeId (Type: dbObject::ValidityType)&lt;br /&gt;
*year (Type: Year)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot;&amp;gt;SELECT &lt;br /&gt;
    last_name AS '_tr(LAST_NAME)', &lt;br /&gt;
    first_name AS '_tr(FIRST_NAME)',&lt;br /&gt;
    email AS '_tr(EMAIL)',&lt;br /&gt;
    home_phone AS '_tr(HOME_PHONE)',&lt;br /&gt;
    work_phone AS '_tr(WORK_PHONE)',&lt;br /&gt;
    cell_phone AS '_tr(CELL_PHONE)',&lt;br /&gt;
    validity_type.name AS '_tr(VALIDITY)',&lt;br /&gt;
    DATE_FORMAT(validity.expire_date,'%d/%m/%Y') AS '_tr(DUE_DATE)'&lt;br /&gt;
FROM person&lt;br /&gt;
LEFT JOIN validity ON (person.id = validity.person_id)&lt;br /&gt;
LEFT JOIN validity_type ON (validity.validity_type_id = validity_type.id)&lt;br /&gt;
WHERE person.activated=1&lt;br /&gt;
  AND validity.expire_date &amp;lt; '$year-$month-01'&lt;br /&gt;
  AND (&lt;br /&gt;
      validity_type.id IN ($validityTypeId)&lt;br /&gt;
      OR&lt;br /&gt;
      ( '-' IN ($validityTypeId) AND validity_type.time_limitation=1 )&lt;br /&gt;
  )&lt;br /&gt;
ORDER BY person.last_name, person.first_name, validity_type.name&amp;lt;/sql&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Users with expire date validities inferior to the first day of the given month and year, with up-to-date expire date of validity XX=&lt;br /&gt;
&lt;br /&gt;
Following extra field required:&lt;br /&gt;
* month (Type: integer)&lt;br /&gt;
* year (Type: year)&lt;br /&gt;
Following symbols should be replace:&lt;br /&gt;
* XX : validity type id&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot;&amp;gt;SELECT CONCAT(last_name, ' ', first_name) AS 'User', validity_type.name AS 'Validity name', expire_date AS 'Expire date'&lt;br /&gt;
FROM person&lt;br /&gt;
LEFT JOIN validity ON person.id=validity.person_id&lt;br /&gt;
LEFT JOIN validity_type ON validity_type.id=validity.validity_type_id&lt;br /&gt;
WHERE validity_type.time_limitation=1&lt;br /&gt;
AND validity.expire_date &amp;lt; '$year-$month-01'&lt;br /&gt;
AND person.id IN (&lt;br /&gt;
    SELECT person.id&lt;br /&gt;
    FROM person&lt;br /&gt;
    LEFT JOIN validity ON person.id=validity.person_id&lt;br /&gt;
    LEFT JOIN validity_type ON validity_type.id=validity.validity_type_id&lt;br /&gt;
    WHERE person.activated=1&lt;br /&gt;
      AND validity_type.id=XX&lt;br /&gt;
      AND validity.expire_date &amp;gt;= UTC_DATE()&lt;br /&gt;
)&lt;br /&gt;
ORDER BY last_name, first_name, validity_type.name&amp;lt;/sql&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Users without an account=&lt;br /&gt;
&amp;lt;SQL&amp;gt;SELECT person.last_name, person.first_name FROM person&lt;br /&gt;
LEFT JOIN account ON account.owner_id=person.id&lt;br /&gt;
LEFT JOIN account_type ON account.account_type=account_type.id&lt;br /&gt;
WHERE person.activated=1 AND account.category=2 AND account_type.activated=1 AND account.activated=0&amp;lt;/SQL&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Young users=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot;&amp;gt;SELECT &lt;br /&gt;
    last_name AS Last_name,&lt;br /&gt;
    first_name AS First_name, &lt;br /&gt;
    DATE_FORMAT(birthdate ,'%m-%d-%Y') AS Birthdate, &lt;br /&gt;
    IF ( sex = 0, 'Male', 'Female' ) AS sex&lt;br /&gt;
FROM person&lt;br /&gt;
WHERE ($year-YEAR(birthdate))&amp;lt;=21 AND activated=1&amp;lt;/sql&amp;gt;&lt;/div&gt;</summary>
		<author><name>imported&gt;Claratte</name></author>
	</entry>
</feed>