Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it L'avatar di pappolo
    Registrato dal
    Mar 2003
    Messaggi
    251

    [Query] Seleziona quelle con un campo uguale tra loro a intervalli

    Scusate il titolo stranissimo, non riuscivo a spiegarmi

    Immaginate di avere una tabella in cui un campo (stagione) può assumere solo 2 valori: 'alta' e 'bassa'

    Ora devo individuare quali sono i periodi di alta stagione e quali quelli di bassa, e in un anno questi si susseguono.
    Quindi io devo trovare, nell'ordine:

    Il primo giorno di alta stagione
    L'ultimo giorno di alta stagione
    Il primo di bassa
    L'ultimo di bassa

    Ora devo poi controllare che dopo l'ultimo di bassa non ce ne sia un altro di alta e così via, sino alla fine dei record, come posso fare?

    In alternativa posso prendere tutti i periodi di alta fino al primo di bassa, poi uttti quelli di bassa fino al succesivo di alta e così via, sempre fino alla fine dei record in tabella

    Come posso muovermi?

  2. #2
    immagino che questi periodi siano abbinati a delle date, metti caso che siano nel campo 'date', potresti fare una cosa così per sapere i quattro giorni che ti interessano:
    codice:
    SELECT MIN(date) AS primo_alta WHERE stagione = 'alta'
    codice:
    SELECT MAX(date) AS ultimo_alta WHERE stagione = 'alta'
    codice:
    SELECT MIN(date) AS primo_bassaWHERE stagione = 'bassa'
    codice:
    SELECT MAX(date) AS ultimo_bassaWHERE stagione = 'bassa'
    per i controlli successivi devi passare a controlli in php sulle query fatte...


  3. #3
    Credo che non ci sia una soluzione molto pratica.

    Selezionare tutti i campi ordinati per data e ciclare i risultati è l'unica soluzione che mi viene in mente.

    Magari a quest'ora carburo male e qualcuno ti spiattella una soluzione migliore

  4. #4
    Utente di HTML.it L'avatar di pappolo
    Registrato dal
    Mar 2003
    Messaggi
    251
    [supersaibal]Originariamente inviato da pugia
    immagino che questi periodi siano abbinati a delle date, metti caso che siano nel campo 'date', potresti fare una cosa così per sapere i quattro giorni che ti interessano:
    codice:
    SELECT MIN(date) AS primo_alta WHERE stagione = 'alta'
    codice:
    SELECT MAX(date) AS ultimo_alta WHERE stagione = 'alta'
    codice:
    SELECT MIN(date) AS primo_bassaWHERE stagione = 'bassa'
    codice:
    SELECT MAX(date) AS ultimo_bassaWHERE stagione = 'bassa'
    per i controlli successivi devi passare a controlli in php sulle query fatte...

    [/supersaibal]
    Purtroppo non sono abbinati a campi in formato data, ma in campi stringhe fatti in questo modo "11 Mar/18 Mar", e non credo che esista una funzione per ordinare queste date, anche se potrei farlo con l'id di periodo, perchè i periodi sono tutti ordinati in ordine crescente, come gli id

    Grazie

  5. #5
    [supersaibal]Originariamente inviato da pappolo
    Purtroppo non sono abbinati a campi in formato data, ma in campi stringhe fatti in questo modo "11 Mar/18 Mar", non so se queste vengono cmq riconosciute come date, cmq provo

    Grazie [/supersaibal]
    Non sono riconosciuti come date e poi se non avevo capito male hai molti periodi alta e bassa che si intersecano fra loro quindi la vedo dura

  6. #6
    "11 Mar/18 Mar",
    gli intervalli sono sempre di una settimana?

  7. #7
    Utente di HTML.it L'avatar di pappolo
    Registrato dal
    Mar 2003
    Messaggi
    251
    Infatti, il problema è questo

    i periodi sono tutti di una settimana, da sabato a sabato, da gennaio 2005 a dicembre 2005.

    Ci potrebbero essere 2 mesi di alta, poi 3 di bassa e così via e si deve poter decidere quando fare iniziare un periodo e quando farlo finire, sono tutte cose fattibili nel momento in cui capisco come selezionare i blocchi di risultati per tipo di stagione

  8. #8
    Utente di HTML.it L'avatar di pappolo
    Registrato dal
    Mar 2003
    Messaggi
    251
    Uppo un pochino

    L'unica soluzione che mi viene in mente comporta 5 query per periodo e poi deve essere iterata fino a che i risultati non sono terminati, ma mi sembra troppo complessa come soluzione...

  9. #9
    Utente di HTML.it L'avatar di pappolo
    Registrato dal
    Mar 2003
    Messaggi
    251
    Ho cambiato strada, era troppo complesso, ora la soluzione semplice semplice per visualizzare le date è stata quella di fare una tabella con dei checkbox per modificare, settimana per settimana, la stagione, è cmq semplice da utilizzare per il cliente, quindi va bene

    L'ho scritto nel caso qualcuno trovando il topic si scervellasse su una soluzione che non serve più

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.