Gestione date, selezione solo giorno e mese

Discussioni sulle caratteristiche di database
Rispondi
strulga
Messaggi: 65
Iscritto il: martedì 18 luglio 2017, 11:53

Gestione date, selezione solo giorno e mese

Messaggio da strulga »

ciao a tutti.
allego database.
nella query "RProvaData"
vorrei:

1. che il campo data sia composto solo da giorno e mese senza l'anno.

2.sto cercando di fare una tabella che mi indichi in un campo la data di inizio "DAL" (la data più vecchia per mese e giorno) e la data di fine "AL" (la data più nuova per mese e giorno)

3. per i mesi intorno a dicembre/gennaio, vorrei che succedesse il contrario: anzichè indicarmi "DAL" 'gennaio' "AL" 'dicembre', mi indicasse "DAL" 'dicembre' "AL" 'gennaio'.

per ora sono riuscito a fare:

select "Nome",
min (Day ("Data") ) as "DalGiorno",
min (Month ("Data") ) as "DalMese",
max (Day ("Data") ) as "AlGiorno",
max (Month ("Data") ) as "AlMese"

from "VIDErbe"
group by "Nome"

solo che:
1. ottengo giorno e mese separati
2. nei mesi da dicembre a gennaio, mi restituisce dal mese di Gennaio al mese di dicembre. invece io vorrei che mi restituisse dal mese di dicembre al mese di gennaio.

come posso fare?
Allegati
strulgone2020web.odb
(152.28 KiB) Scaricato 144 volte
LibreOffice 5.3.0.3 su Windows 7
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 9069
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Gestione date, selezione solo giorno e mese

Messaggio da charlie »

Ciao, per cortesia scrivi i tuoi post usando le lettere maiuscole dove servono e la corretta punteggiatura.

Per la prima parte la risposta potrebbe essere questa:

Codice: Seleziona tutto

SELECT "Nome", 
min ( DAY ( "Data" ) ) ||'/'|| min ( MONTH( "Data" ) ) as "Dal",
max ( DAY ( "Data" ) ) ||'/'|| max ( MONTH( "Data" ) ) as "Al"
FROM "VIDErbe"
group by "Nome"
Non credo di aver capito la seconda domanda.
charlie
macOS 15.5 Sequoia: Open Office 4.1.16 - LibreOffice 25.8
http://www.charlieopenoffice.altervista.org
strulga
Messaggi: 65
Iscritto il: martedì 18 luglio 2017, 11:53

Re: Gestione date, selezione solo giorno e mese

Messaggio da strulga »

Grazie mille per la risposta..

Prima parte risolta.

La seconda è un po' più complicata:
Usando lo script precedente, per quelle date comprese tra novembre e febbraio, il db mi riporterebbe x esempio:
dal 2/1 al 3/11
Mentre per me è importante che riporti:
dal 3/11 al 2/1.
in quanto è questo secondo range di date che mi torna utile.

Questo vale solo per i mesi a cavallo di capodanno, quando cioè dal mese 12 si passa al mese 1.

spero di essermi spiegato bene.

grazie ancora. Chiedo scusa per le cattive punteggiature.
LibreOffice 5.3.0.3 su Windows 7
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 9069
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Gestione date, selezione solo giorno e mese

Messaggio da charlie »

Vorrei una conferma per capire: tu metti insieme il più piccolo (minore) dei giorni Data con il più piccolo (minore) dei mesi data. È concettualmente giusto? Non sarebbe invece corretto abbinare il giorno della Data minore con il mese della stessa Data?
In altre parole sei sicuro di mettere insieme dati omogenei? Mi sono un po' perso .....
charlie
macOS 15.5 Sequoia: Open Office 4.1.16 - LibreOffice 25.8
http://www.charlieopenoffice.altervista.org
strulga
Messaggi: 65
Iscritto il: martedì 18 luglio 2017, 11:53

Re: Gestione date, selezione solo giorno e mese

Messaggio da strulga »

In effetti hai ragione...
È proprio come dici tu.
Le date composte da giorno e mese senza anno ( giorno e mese della stessa data).
ho fatto confusione. Sorry.
inoltre rimane il problema dei mesi a cavallo del capodanno che sarebbe bello far diventare per es. novembre-febbraio e non viceversa.
scusa e grszie ancora!
LibreOffice 5.3.0.3 su Windows 7
strulga
Messaggi: 65
Iscritto il: martedì 18 luglio 2017, 11:53

Re: Gestione date, selezione solo giorno e mese

Messaggio da strulga »

facendo così:

SELECT "Nome",
min ( DAY ( "Data" ) ||'/'|| MONTH( "Data" ) ) as "Dal",
max ( DAY ( "Data" ) ||'/'|| MONTH( "Data" ) ) as "Al"
FROM "VIDErbe"
group by "Nome"

ho risolto quel problema che mi hai fatto notare.
rimane il problema delle date a cavallo di capodanno, che mi piacerebbe che mi restituisse dal "date di fine anno ... novembre, dicmebre.."
al "date di inizio anno gennaio, febbraio.."
e non viceversa dal "gennaio, febbraio" al "novembre dicembre"..
LibreOffice 5.3.0.3 su Windows 7
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 9069
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Gestione date, selezione solo giorno e mese

Messaggio da charlie »

Forse non ci siamo ancora, te ne accorgi mettendo anche l'anno.
Nel codice che segue ho aggiunto l'anno e altri due campi (Dal1 e Al1) che dovrebbero essere la corretta soluzione:

Codice: Seleziona tutto

SELECT "Nome",
min ( DAY ( "Data" ) ||'/'|| MONTH( "Data" )||'/'|| YEAR( "Data" ) ) as "Dal",
max ( DAY ( "Data" ) ||'/'|| MONTH( "Data" )||'/'|| YEAR( "Data" ) ) as "Al",
DAY(MIN("Data" ))  ||'/'|| MONTH(MIN( "Data" )) ||'/'|| YEAR(MIN("Data" )) AS "Dal1",
DAY(MAX("Data" ))  ||'/'|| MONTH(MAX( "Data" )) ||'/'|| YEAR(MAX("Data" )) AS "Al1"
FROM "VIDErbe"
GROUP BY "Nome"
P.S. Mi raccomando ancora le maiuscole :x
charlie
macOS 15.5 Sequoia: Open Office 4.1.16 - LibreOffice 25.8
http://www.charlieopenoffice.altervista.org
strulga
Messaggi: 65
Iscritto il: martedì 18 luglio 2017, 11:53

Re: Gestione date, selezione solo giorno e mese

Messaggio da strulga »

Questo ultimo script sembra davvero il migliore.
L'unica cosa è che tenendo conto solo di Giorno e Mese, alcune date risultano invertite (es. Lavandula angustifolia dal 15/7 al 1/7, Achillea millefolium da 20/7 al 1/7).
Mentre altre invernali le vorrei invertire io (es. Ambra Pietra dal 12/2 al 31/12 vorrei farla diventare dal 31/12 al 12/2).
Comunque funziona decisamente meglio dell'inizio. Grazie!
Ultima modifica di strulga il venerdì 7 febbraio 2020, 17:26, modificato 1 volta in totale.
LibreOffice 5.3.0.3 su Windows 7
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 9069
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Gestione date, selezione solo giorno e mese

Messaggio da charlie »

:x :x :x :x :x
Edit:
:D :D :D :D :D
charlie
macOS 15.5 Sequoia: Open Office 4.1.16 - LibreOffice 25.8
http://www.charlieopenoffice.altervista.org
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 9069
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Gestione date, selezione solo giorno e mese

Messaggio da charlie »

strulga ha scritto:L'unica cosa è che tenendo conto solo di Giorno e Mese, alcune date risultano invertite (es. Lavandula angustifolia dal 15/7 al 1/7, Achillea millefolium da 20/7 al 1/7).
Solo apparentemente. Se aggiungi anche l'anno vedrai che il 15/7 è del 2016 e l'1/7 è del 2019.
Prima di tentare di proseguire devi risolvere queste situazioni.
charlie
macOS 15.5 Sequoia: Open Office 4.1.16 - LibreOffice 25.8
http://www.charlieopenoffice.altervista.org
strulga
Messaggi: 65
Iscritto il: martedì 18 luglio 2017, 11:53

Re: Gestione date, selezione solo giorno e mese

Messaggio da strulga »

Non capisco come potrei risolverlo.
Dovrei forse eliminare l'anno (dato che non mi interessa), inquesto modo riuscirei a gestirmi meglio i dati (DATEPART ?).
Altrimenti non mi viene in mente altro.
Comunque grazie per tutto. mi metterò al lavoro e vedrò cosa risolvo.
LibreOffice 5.3.0.3 su Windows 7
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 9069
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Gestione date, selezione solo giorno e mese

Messaggio da charlie »

Io non so che lavoro ti serve, ma visualizzando l'anno ti rendi conto delle date reali, cioè che il 15/7 è dell'anno 2016 e il 1/7 dell'anno 2019. Quindi è corretto: Dal 15/7/2016 Al 1/7 2019. Se ometti l'anno sembra un errore: Dal 15/7 Al 1/7, ma non lo è.
Il consiglio è quello di lavorare sempre sulle date complete, solo alla fine visualizzare la parte che ti serve.
charlie
macOS 15.5 Sequoia: Open Office 4.1.16 - LibreOffice 25.8
http://www.charlieopenoffice.altervista.org
Rispondi