Difference between revisions of "Export generator 4"
(→Number of take-off and landings on based airfield on specific profile) |
(→Return a user list telling if each user has a profile A, B, C, etc.) |
||
(46 intermediate revisions by 2 users not shown) | |||
Line 52: | Line 52: | ||
Example with last entry from variable #1 in variable_value table: | Example with last entry from variable #1 in variable_value table: | ||
<sql>SELECT * FROM `variable_value` WHERE variable_id=1 ORDER BY start_date DESC LIMIT 1</sql> | <sql>SELECT * FROM `variable_value` WHERE variable_id=1 ORDER BY start_date DESC LIMIT 1</sql> | ||
+ | |||
+ | ==Return a user list telling if each user has a profile A, B, C, etc.== | ||
+ | <sql>SELECT | ||
+ | person.first_name, | ||
+ | person.last_name, | ||
+ | IF(person.profile & 1, 'Yes', 'No') AS 'Profile A', | ||
+ | IF(person.profile & 2, 'Yes', 'No') AS 'Profile B', | ||
+ | IF(person.profile & 4, 'Yes', 'No') AS 'Profile C' | ||
+ | FROM person | ||
+ | WHERE activated=1;</sql> | ||
+ | |||
+ | ==Return the whole content of a given table== | ||
+ | Example with table "profile" | ||
+ | <sql>SELECT * FROM profile;</sql> | ||
+ | |||
+ | This type of SELECT does not work within OpenFlyers to access restricted table like the '''person''' table | ||
==Test valid entries== | ==Test valid entries== | ||
Line 92: | Line 108: | ||
WHERE YEAR(flight.start_date)=$year | WHERE YEAR(flight.start_date)=$year | ||
AND flight.airborne=0 | AND flight.airborne=0 | ||
− | AND ( activity_type.id IN ( | + | AND ( activity_type.id IN ($activityTypeId) OR '' IN ($activityTypeId) ) |
) AS flightWithActivityType | ) AS flightWithActivityType | ||
LEFT JOIN flight_pilot ON (flight_pilot.flight_id=flightWithActivityType.id AND flight_pilot.num=1) | LEFT JOIN flight_pilot ON (flight_pilot.flight_id=flightWithActivityType.id AND flight_pilot.num=1) | ||
Line 133: | Line 149: | ||
WHERE YEAR(flight.start_date)=$year | WHERE YEAR(flight.start_date)=$year | ||
AND flight.airborne=0 | AND flight.airborne=0 | ||
− | AND ( activity_type.id IN ( | + | AND ( activity_type.id IN ($activityTypeId) OR '' IN ($activityTypeId) ) |
AND flight.id NOT IN (SELECT flight_id FROM flight_pilot WHERE num=1) | AND flight.id NOT IN (SELECT flight_id FROM flight_pilot WHERE num=1) | ||
) AS flightWithActivityType | ) AS flightWithActivityType | ||
Line 255: | Line 271: | ||
<sql>SELECT | <sql>SELECT | ||
− | CONCAT(person.last_name, ' ', person.first_name) AS | + | CONCAT(person.last_name, ' ', person.first_name) AS _tr(PILOT), |
− | validity_type.name AS | + | validity_type.name AS _tr(VALIDITY) |
FROM flight_type_mandatory_validity_type | FROM flight_type_mandatory_validity_type | ||
LEFT JOIN activity_type ON activity_type.id = flight_type_mandatory_validity_type.activity_type_id | LEFT JOIN activity_type ON activity_type.id = flight_type_mandatory_validity_type.activity_type_id | ||
Line 324: | Line 340: | ||
LEFT JOIN flight_pilot AS fp ON fp.flight_id=f.id | LEFT JOIN flight_pilot AS fp ON fp.flight_id=f.id | ||
LEFT JOIN person AS person2 ON person2.id=fp.pilot_id | LEFT JOIN person AS person2 ON person2.id=fp.pilot_id | ||
− | WHERE f.airborne = 0 AND f.start_date BETWEEN NOW() - INTERVAL IF( | + | WHERE f.airborne = 0 AND f.start_date BETWEEN NOW() - INTERVAL IF($numberMonth='', 1, $numberMonth*30) DAY AND NOW() |
GROUP BY person2.id HAVING SUM(f.duration)/600 > 0 | GROUP BY person2.id HAVING SUM(f.duration)/600 > 0 | ||
) | ) | ||
Line 336: | Line 352: | ||
<sql>SELECT | <sql>SELECT | ||
− | IF( personWithProfile.sex=0, | + | IF( personWithProfile.sex=0, _tr(SEX_MALE_INITIAL), IF( personWithProfile.sex=1, _tr(SEX_FEMALE_INITIAL), _tr(UNDEFINED)) ) AS _tr(SEX), |
− | IF( ( $year - YEAR(birthdate) >= | + | IF( ( $year - YEAR(birthdate) >= $age ) , _tr(YES), _tr(NO)) AS _tr(ADULT), |
− | COUNT(DISTINCT personWithProfile.id) AS | + | COUNT(DISTINCT personWithProfile.id) AS _tr(NUMBER) |
FROM ( | FROM ( | ||
SELECT person.* | SELECT person.* | ||
Line 433: | Line 449: | ||
<sql>SELECT | <sql>SELECT | ||
− | DATE_FORMAT(start_date, '%d %m %Y' ) AS | + | DATE_FORMAT(start_date, '%d %m %Y' ) AS _tr(DATE), |
− | CONCAT(person.last_name, ' ', person.first_name) AS | + | CONCAT(person.last_name, ' ', person.first_name) AS _tr(FULL_NAME), |
IF ( (SELECT COUNT(*) FROM flight_pilot AS tmp_flight_pilot WHERE flight_pilot.flight_id=tmp_flight_pilot.flight_id AND tmp_flight_pilot.num=1)=0, 'Solo', 'DC' ) AS DC, | IF ( (SELECT COUNT(*) FROM flight_pilot AS tmp_flight_pilot WHERE flight_pilot.flight_id=tmp_flight_pilot.flight_id AND tmp_flight_pilot.num=1)=0, 'Solo', 'DC' ) AS DC, | ||
− | resource.name AS | + | resource.name AS _tr(RESOURCE), |
− | sexa2HoursMinute(duration) AS | + | sexa2HoursMinute(duration) AS _tr(DURATION), |
− | activity_type.name AS | + | activity_type.name AS _tr(ACTIVITY_TYPE), |
− | validity_type.name AS | + | validity_type.name AS _tr(VALIDITY) |
FROM flight | FROM flight | ||
LEFT JOIN flight_type_mandatory_validity_type ON flight_type_mandatory_validity_type.activity_type_id & flight.activity_type_id | LEFT JOIN flight_type_mandatory_validity_type ON flight_type_mandatory_validity_type.activity_type_id & flight.activity_type_id | ||
Line 484: | Line 500: | ||
<sql>SELECT tmp_flight.activity_type_name AS name, | <sql>SELECT tmp_flight.activity_type_name AS name, | ||
− | sexa2HoursMinute(SUM(IF(category=1, duration, 0))) AS | + | sexa2HoursMinute(SUM(IF(category=1, duration, 0))) AS _tr(AIRCRAFT_CATEGORY), |
− | sexa2HoursMinute(SUM(IF(category=18, duration, 0))) AS | + | sexa2HoursMinute(SUM(IF(category=18, duration, 0))) AS _tr(HELICOPTER_CATEGORY), |
− | sexa2HoursMinute(SUM(IF(category=19, duration, 0))) AS | + | sexa2HoursMinute(SUM(IF(category=19, duration, 0))) AS _tr(GLIDER_CATEGORY), |
− | sexa2HoursMinute(SUM(IF(category=17, duration, 0))) AS | + | sexa2HoursMinute(SUM(IF(category=17, duration, 0))) AS _tr(ULTRA_LIGHT_CATEGORY), |
− | sexa2HoursMinute(SUM(IF(category=9, duration, 0))) AS | + | sexa2HoursMinute(SUM(IF(category=9, duration, 0))) AS _tr(CLASSROOM_CATEGORY) |
FROM ( | FROM ( | ||
SELECT | SELECT | ||
Line 500: | Line 516: | ||
LEFT JOIN activity_type ON flight.activity_type_id&activity_type.id | LEFT JOIN activity_type ON flight.activity_type_id&activity_type.id | ||
LEFT JOIN flight_pilot ON (flight_pilot.flight_id=flight.id AND flight_pilot.num=1) | LEFT JOIN flight_pilot ON (flight_pilot.flight_id=flight.id AND flight_pilot.num=1) | ||
− | WHERE YEAR(flight.start_date)= | + | WHERE YEAR(flight.start_date)=$year |
− | AND flight.airborne=0 AND flight_pilot.pilot_id= | + | AND flight.airborne=0 AND flight_pilot.pilot_id=$personId |
) AS flightWithActivityType | ) AS flightWithActivityType | ||
LEFT JOIN resource ON (resource.id=flightWithActivityType.aircraft_id) | LEFT JOIN resource ON (resource.id=flightWithActivityType.aircraft_id) | ||
Line 569: | Line 585: | ||
GROUP BY location.icao_name | GROUP BY location.icao_name | ||
ORDER BY nb_visite DESC</sql> | ORDER BY nb_visite DESC</sql> | ||
+ | |||
+ | ==Young from this year== | ||
+ | |||
+ | <sql>SELECT | ||
+ | CONCAT( '[LINK=index.php[QUESTION_MARK]menuAction=admin_add_modify_user&menuParameter=',person.id,'&menuParameterBis=last_name&menuParameter3=', LEFT(person.last_name, 1),']', person.id, '[/LINK]' ) AS _tr(ID), | ||
+ | person.first_name AS _tr(FIRST_NAME), | ||
+ | person.last_name AS _tr(LAST_NAME), | ||
+ | DATE_FORMAT(birthdate ,'%m-%d-%Y') AS _tr(USER_BIRTHDATE), | ||
+ | IF ( sex = 0, _tr(SEX_MALE), _tr(SEX_FEMALE) ) AS _tr(USER_SEX) | ||
+ | FROM person | ||
+ | WHERE ($year-YEAR(birthdate))<=$age AND activated=1</sql> | ||
=[[Accounting-exports-4|Accounting]]= | =[[Accounting-exports-4|Accounting]]= | ||
Line 581: | Line 608: | ||
<sql>[OF_DYNAMIC_SQL] | <sql>[OF_DYNAMIC_SQL] | ||
SELECT CONCAT( | SELECT CONCAT( | ||
− | 'SELECT booking.id AS | + | 'SELECT booking.id AS _tr(ID), DATE_FORMAT(booking.start_date, \'%Y-%m-%d %H:%i\') AS _tr(START_DATE), DATE_FORMAT(booking.end_date, \'%Y-%m-%d %H:%i\') AS _tr(END_DATE), |
− | left_booking_person.full_name AS | + | ( |
+ | SELECT GROUP_CONCAT( activity_type.name SEPARATOR \', \') | ||
+ | FROM booking_activity_type | ||
+ | LEFT JOIN activity_type ON (booking_activity_type.activity_type_id = activity_type.id) | ||
+ | WHERE booking_activity_type.booking_id=booking.id | ||
+ | ) AS _tr(ACTIVITY_TYPE), | ||
+ | resource.name AS _tr(RESOURCE), | ||
+ | left_booking_person.full_name AS _tr(LEFT_PLACE), right_booking_person.full_name AS _tr(RIGHT_PLACE), ', | ||
IFNULL(GROUP_CONCAT( | IFNULL(GROUP_CONCAT( | ||
CONCAT( | CONCAT( | ||
Line 609: | Line 643: | ||
AND person.activated=1 | AND person.activated=1 | ||
) AS right_booking_person ON (booking.id=right_booking_person.booking_id) | ) AS right_booking_person ON (booking.id=right_booking_person.booking_id) | ||
− | WHERE booking.start_date >= | + | WHERE booking.start_date >= $startDate AND booking.end_date < $endDate |
− | AND (booking_resource.resource_id= | + | AND (booking_resource.resource_id=$resourceId OR \'\'=$resourceId) |
AND ( | AND ( | ||
− | left_booking_person.person_id= | + | left_booking_person.person_id=$personId OR right_booking_person.person_id=$personId OR \'\'=$personId |
) | ) | ||
ORDER BY booking.start_date, booking.end_date' | ORDER BY booking.start_date, booking.end_date' | ||
Line 625: | Line 659: | ||
*endDate (Type : Date or DateTime) | *endDate (Type : Date or DateTime) | ||
− | <sql>SELECT IF(LEAST( | + | <sql>SELECT IF(LEAST($startDate + INTERVAL 366 DAY, $endDate) <> $endDate, ' Attention la date de fin retenue correspond à la date de début + 366 jours', '') AS 'Ressource', '' AS 'Duree de maintenance en heures', '' AS 'Duree en jours' |
UNION ALL | UNION ALL | ||
SELECT resource.name AS 'Ressource', SUM(TIMESTAMPDIFF(HOUR,booking.start_date, booking.end_date)), SUM(TIMESTAMPDIFF(DAY,booking.start_date, booking.end_date)) | SELECT resource.name AS 'Ressource', SUM(TIMESTAMPDIFF(HOUR,booking.start_date, booking.end_date)), SUM(TIMESTAMPDIFF(DAY,booking.start_date, booking.end_date)) | ||
Line 639: | Line 673: | ||
AND (log.table_name='booking') | AND (log.table_name='booking') | ||
AND (log.field_name='id') | AND (log.field_name='id') | ||
− | AND (booking.start_date >= | + | AND (booking.start_date >= $startDate) |
− | AND (booking.start_date <= LEAST( | + | AND (booking.start_date <= LEAST($startDate + INTERVAL 366 DAY, $endDate)) |
GROUP BY resource.id | GROUP BY resource.id | ||
ORDER BY 1</sql> | ORDER BY 1</sql> | ||
Line 650: | Line 684: | ||
*endDate (Type : Date or DateTime) | *endDate (Type : Date or DateTime) | ||
− | <sql>SELECT IF(LEAST( | + | <sql>SELECT IF(LEAST($startDate + INTERVAL 366 DAY, $endDate) <> $endDate, ' Attention la date de fin retenue correspond à la date de début + 366 jours', '') AS 'Ressource', '' AS 'Date debut maintenance', '' AS 'Date fin maintenance', '' AS 'Duree de maintenance en heures', '' AS 'Duree en jours' |
UNION ALL | UNION ALL | ||
SELECT resource.name, booking.start_date AS 'Date debut maintenance', booking.end_date, TIMESTAMPDIFF(HOUR,booking.start_date, booking.end_date), TIMESTAMPDIFF(DAY,booking.start_date, booking.end_date) | SELECT resource.name, booking.start_date AS 'Date debut maintenance', booking.end_date, TIMESTAMPDIFF(HOUR,booking.start_date, booking.end_date), TIMESTAMPDIFF(DAY,booking.start_date, booking.end_date) | ||
Line 664: | Line 698: | ||
AND (log.TABLE_NAME='booking') | AND (log.TABLE_NAME='booking') | ||
AND (log.field_name='id') | AND (log.field_name='id') | ||
− | AND (booking.start_date >= | + | AND (booking.start_date >= $startDate) |
− | AND (booking.start_date <= LEAST( | + | AND (booking.start_date <= LEAST($startDate + INTERVAL 366 DAY, $endDate)) |
ORDER BY 1, 2</sql> | ORDER BY 1, 2</sql> | ||
Line 696: | Line 730: | ||
LEFT JOIN resource ON (resource.id=flight.aircraft_id) | LEFT JOIN resource ON (resource.id=flight.aircraft_id) | ||
LEFT JOIN aircraft ON (aircraft.id=resource.id) | LEFT JOIN aircraft ON (aircraft.id=resource.id) | ||
− | WHERE flight.start_date <= | + | WHERE flight.start_date <= $endDate |
AND resource.activated=1 | AND resource.activated=1 | ||
GROUP BY resource.id | GROUP BY resource.id | ||
Line 767: | Line 801: | ||
LEFT JOIN resource ON resource.id = aircraft.id | LEFT JOIN resource ON resource.id = aircraft.id | ||
WHERE YEAR(start_date)= $year AND airborne = 0 | WHERE YEAR(start_date)= $year AND airborne = 0 | ||
− | AND (flight.activity_type_id & | + | AND (flight.activity_type_id & $activityTypeId OR ''=$activityTypeId) |
GROUP BY resource.id | GROUP BY resource.id | ||
UNION | UNION | ||
Line 788: | Line 822: | ||
LEFT JOIN resource ON resource.id = aircraft.id | LEFT JOIN resource ON resource.id = aircraft.id | ||
WHERE YEAR(start_date)= $year AND airborne = 0 | WHERE YEAR(start_date)= $year AND airborne = 0 | ||
− | AND (flight.activity_type_id & | + | AND (flight.activity_type_id & $activityTypeId OR ''=$activityTypeId) |
UNION | UNION | ||
SELECT "Cumulative","per month", | SELECT "Cumulative","per month", | ||
Line 808: | Line 842: | ||
LEFT JOIN resource ON resource.id = aircraft.id | LEFT JOIN resource ON resource.id = aircraft.id | ||
WHERE YEAR(start_date)= $year AND airborne = 0 | WHERE YEAR(start_date)= $year AND airborne = 0 | ||
− | AND (flight.activity_type_id & | + | AND (flight.activity_type_id & $activityTypeId OR ''=$activityTypeId)</sql> |
==Flight hours total per pilot== | ==Flight hours total per pilot== | ||
Line 879: | Line 913: | ||
This report is useful for a group of pilots from a common customer (like DGAC in France) | This report is useful for a group of pilots from a common customer (like DGAC in France) | ||
− | <sql>SELECT CONCAT(person.last_name,' ',person.first_name) AS | + | <sql>SELECT CONCAT(person.last_name,' ',person.first_name) AS _tr(FULL_NAME), |
− | CONCAT(FLOOR(SUM( flight.duration )/600),':',TIME_FORMAT(SEC_TO_TIME((SUM( flight.duration )/600 - FLOOR(SUM( flight.duration )/600))*3600),'%i')) AS | + | CONCAT(FLOOR(SUM( flight.duration )/600),':',TIME_FORMAT(SEC_TO_TIME((SUM( flight.duration )/600 - FLOOR(SUM( flight.duration )/600))*3600),'%i')) AS _tr(TOTAL_FLIGHT_TIME), |
− | SUM(account_entry.debit) - SUM(account_entry.credit) AS | + | SUM(account_entry.debit) - SUM(account_entry.credit) AS _tr(TOTAL_AMOUNT_ACTIVITIES) |
FROM flight | FROM flight | ||
RIGHT JOIN flight_pilot ON flight_pilot.flight_id=flight.id | RIGHT JOIN flight_pilot ON flight_pilot.flight_id=flight.id | ||
− | AND (IF((( | + | AND (IF((($occupiedSeat=0) OR ($occupiedSeat='')), 0, -1) = flight_pilot.num |
− | OR IF((( | + | OR IF((($occupiedSeat=1) OR ($occupiedSeat='')), 1, -1) = flight_pilot.num) |
RIGHT JOIN person ON person.id=flight_pilot.pilot_id | RIGHT JOIN person ON person.id=flight_pilot.pilot_id | ||
RIGHT JOIN profile ON profile.id&person.profile | RIGHT JOIN profile ON profile.id&person.profile | ||
Line 892: | Line 926: | ||
LEFT JOIN account_entry ON account_entry.flow_id = flight_account_entry.account_entry_id | LEFT JOIN account_entry ON account_entry.flow_id = flight_account_entry.account_entry_id | ||
LEFT JOIN account ON account.id=account_entry.account_id | LEFT JOIN account ON account.id=account_entry.account_id | ||
− | WHERE | + | WHERE $startDate <= flight.start_date AND flight.start_date <= $endDate AND (account.category = 11 OR account.category = 2) |
GROUP BY person.id</sql> | GROUP BY person.id</sql> | ||
Line 900: | Line 934: | ||
*activityTypeId (Type : dbObject::FlightType) | *activityTypeId (Type : dbObject::FlightType) | ||
<sql>SELECT | <sql>SELECT | ||
− | CONCAT(UPPER(person.last_name), ' ', person.first_name) AS | + | CONCAT(UPPER(person.last_name), ' ', person.first_name) AS _tr(LAST_NAME), |
− | (SELECT sexa2HoursMinute( SUM( duration ) ) FROM flight INNER JOIN flight_pilot ON flight_pilot.flight_id = flight.id WHERE YEAR(start_date)= $year AND MONTH(start_date)= 1 AND flight_pilot.pilot_id = person.id AND flight_pilot.num = 1 AND ( flight.activity_type_id & | + | (SELECT sexa2HoursMinute( SUM( duration ) ) FROM flight INNER JOIN flight_pilot ON flight_pilot.flight_id = flight.id WHERE YEAR(start_date)= $year AND MONTH(start_date)= 1 AND flight_pilot.pilot_id = person.id AND flight_pilot.num = 1 AND ( flight.activity_type_id & $activityTypeId != 0 OR ''=$activityTypeId ) ) AS _tr(MONTH_JANUARY), |
− | (SELECT sexa2HoursMinute( SUM( duration ) ) FROM flight INNER JOIN flight_pilot ON flight_pilot.flight_id = flight.id WHERE YEAR(start_date)= $year AND MONTH(start_date)= 2 AND flight_pilot.pilot_id = person.id AND flight_pilot.num = 1 AND ( flight.activity_type_id & | + | (SELECT sexa2HoursMinute( SUM( duration ) ) FROM flight INNER JOIN flight_pilot ON flight_pilot.flight_id = flight.id WHERE YEAR(start_date)= $year AND MONTH(start_date)= 2 AND flight_pilot.pilot_id = person.id AND flight_pilot.num = 1 AND ( flight.activity_type_id & $activityTypeId != 0 OR ''=$activityTypeId ) ) AS _tr(MONTH_FEBRUARY), |
− | (SELECT sexa2HoursMinute( SUM( duration ) ) FROM flight INNER JOIN flight_pilot ON flight_pilot.flight_id = flight.id WHERE YEAR(start_date)= $year AND MONTH(start_date)= 3 AND flight_pilot.pilot_id = person.id AND flight_pilot.num = 1 AND ( flight.activity_type_id & | + | (SELECT sexa2HoursMinute( SUM( duration ) ) FROM flight INNER JOIN flight_pilot ON flight_pilot.flight_id = flight.id WHERE YEAR(start_date)= $year AND MONTH(start_date)= 3 AND flight_pilot.pilot_id = person.id AND flight_pilot.num = 1 AND ( flight.activity_type_id & $activityTypeId != 0 OR ''=$activityTypeId ) ) AS _tr(MONTH_MARCH), |
− | (SELECT sexa2HoursMinute( SUM( duration ) ) FROM flight INNER JOIN flight_pilot ON flight_pilot.flight_id = flight.id WHERE YEAR(start_date)= $year AND MONTH(start_date)= 4 AND flight_pilot.pilot_id = person.id AND flight_pilot.num = 1 AND ( flight.activity_type_id & | + | (SELECT sexa2HoursMinute( SUM( duration ) ) FROM flight INNER JOIN flight_pilot ON flight_pilot.flight_id = flight.id WHERE YEAR(start_date)= $year AND MONTH(start_date)= 4 AND flight_pilot.pilot_id = person.id AND flight_pilot.num = 1 AND ( flight.activity_type_id & $activityTypeId != 0 OR ''=$activityTypeId ) ) AS _tr(MONTH_APRIL), |
− | (SELECT sexa2HoursMinute( SUM( duration ) ) FROM flight INNER JOIN flight_pilot ON flight_pilot.flight_id = flight.id WHERE YEAR(start_date)= $year AND MONTH(start_date)= 5 AND flight_pilot.pilot_id = person.id AND flight_pilot.num = 1 AND ( flight.activity_type_id & | + | (SELECT sexa2HoursMinute( SUM( duration ) ) FROM flight INNER JOIN flight_pilot ON flight_pilot.flight_id = flight.id WHERE YEAR(start_date)= $year AND MONTH(start_date)= 5 AND flight_pilot.pilot_id = person.id AND flight_pilot.num = 1 AND ( flight.activity_type_id & $activityTypeId != 0 OR ''=$activityTypeId ) ) AS _tr(MONTH_MAY), |
− | (SELECT sexa2HoursMinute( SUM( duration ) ) FROM flight INNER JOIN flight_pilot ON flight_pilot.flight_id = flight.id WHERE YEAR(start_date)= $year AND MONTH(start_date)= 6 AND flight_pilot.pilot_id = person.id AND flight_pilot.num = 1 AND ( flight.activity_type_id & | + | (SELECT sexa2HoursMinute( SUM( duration ) ) FROM flight INNER JOIN flight_pilot ON flight_pilot.flight_id = flight.id WHERE YEAR(start_date)= $year AND MONTH(start_date)= 6 AND flight_pilot.pilot_id = person.id AND flight_pilot.num = 1 AND ( flight.activity_type_id & $activityTypeId != 0 OR ''=$activityTypeId ) ) AS _tr(MONTH_JUN), |
− | (SELECT sexa2HoursMinute( SUM( duration ) ) FROM flight INNER JOIN flight_pilot ON flight_pilot.flight_id = flight.id WHERE YEAR(start_date)= $year AND MONTH(start_date)= 7 AND flight_pilot.pilot_id = person.id AND flight_pilot.num = 1 AND ( flight.activity_type_id & | + | (SELECT sexa2HoursMinute( SUM( duration ) ) FROM flight INNER JOIN flight_pilot ON flight_pilot.flight_id = flight.id WHERE YEAR(start_date)= $year AND MONTH(start_date)= 7 AND flight_pilot.pilot_id = person.id AND flight_pilot.num = 1 AND ( flight.activity_type_id & $activityTypeId != 0 OR ''=$activityTypeId ) ) AS _tr(MONTH_JULY), |
− | (SELECT sexa2HoursMinute( SUM( duration ) ) FROM flight INNER JOIN flight_pilot ON flight_pilot.flight_id = flight.id WHERE YEAR(start_date)= $year AND MONTH(start_date)= 8 AND flight_pilot.pilot_id = person.id AND flight_pilot.num = 1 AND ( flight.activity_type_id & | + | (SELECT sexa2HoursMinute( SUM( duration ) ) FROM flight INNER JOIN flight_pilot ON flight_pilot.flight_id = flight.id WHERE YEAR(start_date)= $year AND MONTH(start_date)= 8 AND flight_pilot.pilot_id = person.id AND flight_pilot.num = 1 AND ( flight.activity_type_id & $activityTypeId != 0 OR ''=$activityTypeId ) ) AS _tr(MONTH_AUGUST), |
− | (SELECT sexa2HoursMinute( SUM( duration ) ) FROM flight INNER JOIN flight_pilot ON flight_pilot.flight_id = flight.id WHERE YEAR(start_date)= $year AND MONTH(start_date)= 9 AND flight_pilot.pilot_id = person.id AND flight_pilot.num = 1 AND ( flight.activity_type_id & | + | (SELECT sexa2HoursMinute( SUM( duration ) ) FROM flight INNER JOIN flight_pilot ON flight_pilot.flight_id = flight.id WHERE YEAR(start_date)= $year AND MONTH(start_date)= 9 AND flight_pilot.pilot_id = person.id AND flight_pilot.num = 1 AND ( flight.activity_type_id & $activityTypeId != 0 OR ''=$activityTypeId ) ) AS _tr(MONTH_SEPTEMBER), |
− | (SELECT sexa2HoursMinute( SUM( duration ) ) FROM flight INNER JOIN flight_pilot ON flight_pilot.flight_id = flight.id WHERE YEAR(start_date)= $year AND MONTH(start_date)= 10 AND flight_pilot.pilot_id = person.id AND flight_pilot.num = 1 AND ( flight.activity_type_id & | + | (SELECT sexa2HoursMinute( SUM( duration ) ) FROM flight INNER JOIN flight_pilot ON flight_pilot.flight_id = flight.id WHERE YEAR(start_date)= $year AND MONTH(start_date)= 10 AND flight_pilot.pilot_id = person.id AND flight_pilot.num = 1 AND ( flight.activity_type_id & $activityTypeId != 0 OR ''=$activityTypeId ) ) AS _tr(MONTH_OCTOBER), |
− | (SELECT sexa2HoursMinute( SUM( duration ) ) FROM flight INNER JOIN flight_pilot ON flight_pilot.flight_id = flight.id WHERE YEAR(start_date)= $year AND MONTH(start_date)= 11 AND flight_pilot.pilot_id = person.id AND flight_pilot.num = 1 AND ( flight.activity_type_id & | + | (SELECT sexa2HoursMinute( SUM( duration ) ) FROM flight INNER JOIN flight_pilot ON flight_pilot.flight_id = flight.id WHERE YEAR(start_date)= $year AND MONTH(start_date)= 11 AND flight_pilot.pilot_id = person.id AND flight_pilot.num = 1 AND ( flight.activity_type_id & $activityTypeId != 0 OR ''=$activityTypeId ) ) AS _tr(MONTH_NOVEMBER), |
− | (SELECT sexa2HoursMinute( SUM( duration ) ) FROM flight INNER JOIN flight_pilot ON flight_pilot.flight_id = flight.id WHERE YEAR(start_date)= $year AND MONTH(start_date)= 12 AND flight_pilot.pilot_id = person.id AND flight_pilot.num = 1 AND ( flight.activity_type_id & | + | (SELECT sexa2HoursMinute( SUM( duration ) ) FROM flight INNER JOIN flight_pilot ON flight_pilot.flight_id = flight.id WHERE YEAR(start_date)= $year AND MONTH(start_date)= 12 AND flight_pilot.pilot_id = person.id AND flight_pilot.num = 1 AND ( flight.activity_type_id & $activityTypeId != 0 OR ''=$activityTypeId ) ) AS _tr(MONTH_DECEMBER), |
− | sexa2HoursMinute( SUM( duration ) ) AS | + | sexa2HoursMinute( SUM( duration ) ) AS _tr(TOTAL) |
FROM flight | FROM flight | ||
LEFT JOIN flight_pilot fp ON fp.flight_id = flight.id | LEFT JOIN flight_pilot fp ON fp.flight_id = flight.id | ||
Line 921: | Line 955: | ||
AND fp.num = 1 | AND fp.num = 1 | ||
AND YEAR( start_date ) = $year | AND YEAR( start_date ) = $year | ||
− | AND ( flight.activity_type_id & | + | AND ( flight.activity_type_id & $activityTypeId OR ''=$activityTypeId ) |
GROUP BY person.id</sql> | GROUP BY person.id</sql> | ||
Line 1,157: | Line 1,191: | ||
<sql>[OF_DYNAMIC_SQL] | <sql>[OF_DYNAMIC_SQL] | ||
SELECT CONCAT( | SELECT CONCAT( | ||
− | 'SELECT resource.name AS | + | 'SELECT resource.name AS _tr(RESOURCE_NAME), ', |
GROUP_CONCAT( | GROUP_CONCAT( | ||
CONCAT( | CONCAT( | ||
− | 'sexa2HoursMinute( SUM( IF( tmp_flight.activity_type_id | + | 'sexa2HoursMinute( SUM( IF( tmp_flight.activity_type_id & ', |
activity_type.id, | activity_type.id, | ||
− | ', tmp_flight. | + | ', tmp_flight.duration, 0 ) ) )', |
− | ' AS | + | ' AS ', |
− | activity_type.name | + | QUOTE(activity_type.name) |
− | + | ||
) | ) | ||
), | ), | ||
− | ', sexa2HoursMinute( SUM( tmp_flight. | + | ', sexa2HoursMinute( SUM( tmp_flight.duration ) ) AS _tr(ALL_ACTIVITY_TYPES) |
FROM resource | FROM resource | ||
− | + | INNER JOIN | |
( | ( | ||
− | SELECT flight.aircraft_id, | + | SELECT flight.aircraft_id, flight.activity_type_id, duration |
FROM flight | FROM flight | ||
− | + | WHERE flight.start_date >= $startDate AND flight.start_date <= $endDate AND flight.airborne = 0 | |
− | WHERE flight.start_date >= | + | |
− | + | ||
) AS tmp_flight ON (resource.id=tmp_flight.aircraft_id) | ) AS tmp_flight ON (resource.id=tmp_flight.aircraft_id) | ||
− | |||
GROUP BY resource.id' | GROUP BY resource.id' | ||
) | ) | ||
Line 1,193: | Line 1,223: | ||
* Variable '''$personId''' of '''dbOjectMulti::Person''' value type | * Variable '''$personId''' of '''dbOjectMulti::Person''' value type | ||
− | <sql>SELECT | + | <sql>SELECT $month AS Mois, CONCAT(left_person.last_name, ' ', left_person.first_name) AS 'Personne en première place', activity_type.name AS 'Type d\'activité', sexa2HoursMinute( SUM( IFNULL(duration, 0) ) ) AS 'Durée' |
FROM flight | FROM flight | ||
LEFT JOIN activity_type ON (flight.activity_type_id & activity_type.id) | LEFT JOIN activity_type ON (flight.activity_type_id & activity_type.id) | ||
Line 1,199: | Line 1,229: | ||
LEFT JOIN person AS left_person ON (left_place.pilot_id=left_person.id) | LEFT JOIN person AS left_person ON (left_place.pilot_id=left_person.id) | ||
LEFT JOIN flight_pilot AS right_place ON (flight.id=right_place.flight_id AND right_place.num=1) | LEFT JOIN flight_pilot AS right_place ON (flight.id=right_place.flight_id AND right_place.num=1) | ||
− | WHERE YEAR(flight.start_date)= | + | WHERE YEAR(flight.start_date)=$year |
− | AND MONTH(flight.start_date)= | + | AND MONTH(flight.start_date)=$month |
− | AND (right_place.pilot_id= | + | AND (right_place.pilot_id=$personId OR '-'=right_place.pilot_id='$personId') |
GROUP BY left_person.id, activity_type.id | GROUP BY left_person.id, activity_type.id | ||
ORDER BY left_person.last_name, left_person.first_name, activity_type.name</sql> | ORDER BY left_person.last_name, left_person.first_name, activity_type.name</sql> | ||
Line 1,221: | Line 1,251: | ||
SELECT CONCAT( | SELECT CONCAT( | ||
'SELECT | 'SELECT | ||
− | flight.id AS | + | flight.id AS _tr(ID), |
− | IF(flight.validated=1, | + | IF(flight.validated=1, _tr(YES), _tr(NO)) AS _tr(VALIDATED), |
− | flight.start_date AS | + | flight.start_date AS _tr(START_DATE), |
− | resource.name AS | + | resource.name AS _tr(RESOURCE), |
( | ( | ||
SELECT CONCAT(UPPER(tmp_person.last_name), \' \', tmp_person.first_name) | SELECT CONCAT(UPPER(tmp_person.last_name), \' \', tmp_person.first_name) | ||
Line 1,230: | Line 1,260: | ||
< |