
Originariamente inviata da
Marcick
Quindi se una singola query non può essere combinata come serve a me (mi sembrava di avere letto che c'era possibilità di annidare le query) potrei fare in due passaggi. Con il primo richiedo tutti i record a partire da una certa data che contengono campo MS="S" limitando il risultato a 1. Vedo la data di quel record e con il secondo passaggio richiedo tutti i record da data a data.
Si, mi sembra l'unica soluzione, considerando una serie di dati come questa:
codice:
+------------+--------+
| giorno | valore |
+------------+--------+
| 2015-04-01 | M |
| 2015-04-02 | M |
| 2015-04-03 | M |
| 2015-04-04 | M |
| 2015-04-05 | M |
| 2015-04-06 | M |
| 2015-04-07 | M |
| 2015-04-08 | M |
| 2015-04-09 | M |
| 2015-04-10 | M |
| 2015-04-11 | M |
| 2015-04-12 | M |
| 2015-04-13 | M |
| 2015-04-14 | M |
| 2015-04-15 | S |
| 2015-04-16 | M |
| 2015-04-17 | M |
| 2015-04-18 | M |
| 2015-04-19 | M |
| 2015-04-20 | M |
+------------+--------+
con questa query:
codice:
SELECT * FROM timetest
WHERE giorno >= '2015-04-06'
AND giorno < (
SELECT giorno
FROM timetest
WHERE valore = 'S'
AND giorno >= '2015-04-06'
ORDER BY giorno ASC
LIMIT 1
);
ottieni questo risultato:
codice:
+------------+--------+
| giorno | valore |
+------------+--------+
| 2015-04-06 | M |
| 2015-04-07 | M |
| 2015-04-08 | M |
| 2015-04-09 | M |
| 2015-04-10 | M |
| 2015-04-11 | M |
| 2015-04-12 | M |
| 2015-04-13 | M |
| 2015-04-14 | M |
+------------+--------+
che se ho capito bene e' quello che volevi ottenere.