Bonjour,
J'ai les tables suivantes :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | CREATE TABLE IF NOT EXISTS Tables( id INTEGER PRIMARY KEY AUTOINCREMENT, name VARCHAR NOT NULL, UNIQUE (name) ); CREATE TABLE IF NOT EXISTS CrudeData( id INTEGER PRIMARY KEY AUTOINCREMENT, cow INTEGER NOT NULL, date DATE NOT NULL, prod REAL NOT NULL, -- L cons REAL NOT NULL, -- kg lact INTEGER NOT NULL, day INTEGER NOT NULL, UNIQUE (cow, date) ); INSERT OR IGNORE INTO Tables (name) VALUES ('CrudeData'); CREATE TABLE IF NOT EXISTS DifferencedData( id INTEGER PRIMARY KEY AUTOINCREMENT, source INTEGER NOT NULL, -- The corresponding line in CrudeData table prod REAL NOT NULL, degree INTEGER, -- How many times data have been differenced FOREIGN KEY(source) REFERENCES CrudeData(id), UNIQUE (source, degree) ); INSERT OR IGNORE INTO Tables (name) VALUES ('DifferencedData'); |
Et je souhaiterais récupérer, dans l'ordre chronologique, les productions des lignes de DifferencedData
pour lesquelles le champ degree
est à 1
et le champ source
fait référence à l'identifiant d'une ligne de CrudeData
ayant 1
pour valeur du champ cow
.
Autrement dit, je veux récupérer les productions différenciées une fois de la vache 1
et les ranger par ordre chronologique (selon le champ date
de CrudeData
).
Il me semble que je parviens à les récupérer tout court ainsi :
1 | SELECT prod FROM DifferencedData WHERE degree = 1 AND source IN (SELECT id FROM CrudeData WHERE cow = 1) |
Mais j'ignore comment les ordonner, la requête suivante me renvoyant un Error: no such column: CrudeData.date
:
1 | SELECT prod FROM DifferencedData WHERE degree = 1 AND source IN (SELECT id FROM CrudeData WHERE cow = 1) ORDER BY CrudeData.date |
Merci !
PS : je ne pense pas que ça influe beaucoup, mais je suis avec SQLite.
+0
-0