27/08/2026 - pierpippo ha scritto:

Il problema sta quindi nel fatto che i giorni non festivi nel mio progetto, possono essere feriali o scolastici: quindi ho questa situazione:

  • periodo invernale: i feriali sono tutti scolastici 
    (tabelle di marcia (id_tm) valide, con frequenza feriale+scolastica+giornaliera)
  • periodo estivo/natalizio/pasquale: i feriali sono semplicemente feriali
    (tabelle valide con frequenza feriale+giornaliera

Cmq ho visto che la query va a prendere, in ogni caso tutte le corse che sono in tabelle con frequenza 'giornaliera'.

uhm.... non festivi possono essere feriali o scolastici? ti avevo detti che scolastico è un sottoinsieme di feriale.

adesso mi salta all'occhio "giornaliera". che significa?

a che serve questa tabella?

la tabella "tabelle_marcia"
4 rows in set (0,001 sec)
MariaDB [gbgarage_test]> SELECT * FROM gbgar_tab_marcia;
+-------+-------------+-----------+-------------+
| ID_TM | TABELLA     | PERIODO   | FREQUENZA   |
+-------+-------------+-----------+-------------+
|     1 | 913 lun-sab | invernale | scolastica  |
|     2 | 912 lun-sab | invernale | scolastica  |
|     3 | 919 lun-sab | estivo    | feriale     |
|     4 | 811         | invernale | giornaliera |
|     5 | 811         | invernale | scolastica  |
+-------+-------------+-----------+-------------+
5 rows in set (0,001 sec)

la query ti restituisce

// RISULTATO DAL 01/01/2025 AL 31/01/2025

+------------+------------+--------------+
| giorno     | servizio   | numero_corse |
+------------+------------+--------------+
| 2025-01-01 | FESTIVO    |            2 |
| 2025-01-02 | INVERNALE  |            4 |
| 2025-01-03 | INVERNALE  |            4 |
| 2025-01-04 | INVERNALE  |            4 |
| 2025-01-05 | FESTIVO    |            2 |
| 2025-01-06 | FESTIVO    |            2 |
| 2025-01-07 | SCOLASTICO |            5 |
| 2025-01-08 | SCOLASTICO |            5 |
| 2025-01-09 | SCOLASTICO |            5 |
| 2025-01-10 | SCOLASTICO |            5 |
| 2025-01-11 | SCOLASTICO |            5 |
| 2025-01-12 | FESTIVO    |            2 |
| 2025-01-13 | SCOLASTICO |            5 |
| 2025-01-14 | SCOLASTICO |            5 |
| 2025-01-15 | SCOLASTICO |            5 |
| 2025-01-16 | SCOLASTICO |            5 |
| 2025-01-17 | SCOLASTICO |            5 |
| 2025-01-18 | SCOLASTICO |            5 |
| 2025-01-19 | FESTIVO    |            2 |
| 2025-01-20 | SCOLASTICO |            5 |
| 2025-01-21 | SCOLASTICO |            5 |
| 2025-01-22 | SCOLASTICO |            5 |
| 2025-01-23 | SCOLASTICO |            5 |
| 2025-01-24 | SCOLASTICO |            5 |
| 2025-01-25 | SCOLASTICO |            5 |
| 2025-01-26 | FESTIVO    |            2 |
| 2025-01-27 | SCOLASTICO |            5 |
| 2025-01-28 | SCOLASTICO |            5 |
| 2025-01-29 | SCOLASTICO |            5 |
| 2025-01-30 | SCOLASTICO |            5 |
| 2025-01-31 | SCOLASTICO |            5 |
+------------+------------+--------------+

dove il campo servizio lo puoi chiamare tranquillamente "periodo" come nella tua gbgar_tab_marcia

frequenza che cosa indica? alla fermata dell'autobus indica ogni quanto tempo passa il mezzo (30 min... 45 min... ecc), qui cosa indica?

il campo tabella cosa indica? hai valori ripetuti.

nella query il campo numero_corse per me indica quanti mezzi sono coinvolti (il tuo 913 lun-sab).

che collegamento hai con le frequenze della tabella marcia? e cosa è la tabella marcia?

27/08/2026 - pierpippo ha scritto:

Il secondo problema invece sarebbe che il risultato della query dovrà cmq essere "epurato" delle corse che sono già presenti per la stessa data, in gbgar_serv_detail.

la query ti risolve il problema data>>periodo

epurato che significa?

avrai una tabella di partenza filtrata in base a cosa ti restituisce la query (il tuo array di partenza).

quindi:

variabili: data (che già hai impostato e passato alla query), periodo che e query.servizio, query.numerocorse

quindi lanci una vista tabellare con le condizioni di periodo e numero corse (una tua tabella di settaggio) con il modello "not in..." oppure "IS NULL".

ti ho fatto un esempio in altro 3d.

inserisci le corse

update tabellax bla bla... prendendo i valori dalla tabella di partenza

aggiorni la vista e aggiorni la tabella "diario".

se togli dal diario (delete bla bla from diario...) aggiorni ancora la vista di partenza.

ma questa è un'altra gestione.

metti la tabella dei mezzi disponibili per periodo

segue la tabella assegnata (diario)

metti un pulsante aggiungi alla tabella di partenza e fai la insert

un pulsante alla tabella diario per eliminare in record selezionato e renderlo disponibile nuovamente alla tabella di partenza.