J'ai 3 tables SQLite:syntaxe SQLite - joindre les données à partir de 3 tables
Table inspections
, où insp_id
est-primary key
id | name | deleted
------------------------------
I1 | Inspection A | (null)
I2 | Inspection B | (null)
I3 | Inspection C | 1
tableau equip_insp
, où equip_id, insp_id
sont primary keys
equip_id | insp_id | period | period_type
--------------------------------------------
E1 | I1 | 1 | Y
E1 | I2 | 6 | M
E2 | I1 | 1 | M
Table equip_certif
, où id
est primary key
id | equip_id | insp_id | date | certif_no | result | info
-------------------------------------------------------------------
C4 | E1 | I1 | 2015-02-01 | A-300 | Good | (null)
C3 | E1 | I1 | 2015-02-01 | A-200 | Good | (null)
C2 | E1 | I1 | 2015-01-10 | A-100 | Good | (null)
C1 | E1 | I2 | 2015-01-06 | B-100 | Good | (null)
Tous les ID sont en fait des valeurs numériques, j'utilise quelques lettres juste pour être facile de les relier entre eux. Donc, je voudrais m'aider avec la syntaxe Sqlite que pour l'article E1, afficher toutes les inspections définies (ascendantes), puis si elles existent, afficher la périodicité puis afficher la dernière date du certificat (s'il y en a 2) certificats à la même date, obtenir les dernières id), le nombre et le résultat qui n'est pas d'info
résultat devrait être quelque chose comme ceci:
id | name | period | period_type | certif_no | date | result
--------------------------------------------------------------------------
I1 | Inspection A | 1 | Y | A-300 | 2015-02-01 | Good
I2 | Inspection B | 6 | M | B-100 | 2015-01-06 | Good
J'ai essayer, mais je ne suis pas si sûr c'est correct.
SELECT inspections.id, inspections.name, equip_insp.period, equip_insp.period_type, equip_certif.certif_no, equip_certif.date AS certif_date, equip_certif.result
FROM inspections
LEFT JOIN equip_insp ON (inspections.id = equip_insp.insp_id AND equip_insp.equip_id = 'E1')
LEFT JOIN equip_certif ON (inspections.id = equip_certif.insp_id AND equip_certif.info IS NULL)
WHERE inspections.deleted IS NULL
GROUP BY equip_insp.insp_id
ORDER BY inspections.id, date(equip_certif.date) DESC, equip_certif.id DESC
avez-vous une idée sur la façon de résoudre le cas lorsque 2 certificats ont la même date, donc je peux obtenir celui avec le dernier id introduit? – REALSOFO