SELECT biblio.title AS "Abonnement", subscription.subscriptionid AS "No. Abonnement", serial.serialseq AS "No. Séquence", serial.serialid AS "No. périodique", ExtractValue(biblioitems.marcxml, '//record/datafield[@tag="952"]/subfield[@code="2"]') AS "Classification", ExtractValue(biblioitems.marcxml, '//record/datafield[@tag="952"]/subfield[@code="o"]') AS "Cote", ExtractValue(biblioitems.marcxml, '//record/datafield[@tag="952"]/subfield[@code="c"]') AS "Emplacement", serial.planneddate AS "Date réception", DATE_ADD(serial.planneddate, INTERVAL subscription.seriallifespan YEAR) AS "Date d'expiration", CONCAT(CAST(subscription.seriallifespan as CHAR(2)), ' ans') AS "Durée de vie", serial.notes AS "Note périodique", subscription.notes AS "Note abonnement" FROM subscription INNER JOIN serial ON subscription.subscriptionid = serial.subscriptionid INNER JOIN biblioitems ON serial.biblionumber = biblioitems.biblionumber INNER JOIN biblio ON biblioitems.biblionumber = biblio.biblionumber WHERE serial.status = 2 AND subscription.seriallifespan != -1 AND DATE_ADD(serial.planneddate, INTERVAL subscription.seriallifespan YEAR) < now()