[Risolto] Calcolo anni di vita

Discussioni sulle caratteristiche di database
Rispondi
giuseppe57
Messaggi: 58
Iscritto il: mercoledì 12 aprile 2023, 9:00

[Risolto] Calcolo anni di vita

Messaggio da giuseppe57 »

Buona sera, avrei bisogno di sapere, se possibile e per favore, la sintassi per calcolare gli anni di vita di una persona in un database Libre. Faccio presente che qualcosa ho trovato tempo fa, ma ora l'ho anche smarrito, per il calcolo con Calc e calcolava perfetto, al giorno, ma in Base non funzionava, poi trovai qualcosa anche per base ma era molto approssimativo e quindi non affidabile. Mi potete dare una mano per cortesia? Grazie in anticipo.
Saluti
Giuseppe
Ultima modifica di giuseppe57 il mercoledì 31 maggio 2023, 16:14, modificato 1 volta in totale.
LibreOffice 7.5.2 su windows 10
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8785
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Calcolo anni di vita

Messaggio da charlie »

Ciao, avevamo già parlato delle funzione DATEDIFF qui: https://forum.openoffice.org/it/forum/v ... t=datediff
Al posto delle prima data devi metterci la funzione NOW() che vuol dire ora, in questa data, in questo momento. Al posto della seconda data devi mettere quella di nascita. Ti lascio invece scoprire cosa scrivere al posto di 'dd' per aver gli anni anzichè i giorni :D .
charlie
macOS 14.3 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
giuseppe57
Messaggi: 58
Iscritto il: mercoledì 12 aprile 2023, 9:00

Re: Calcolo anni di vita

Messaggio da giuseppe57 »

Infatti, mi ricordavo che c'era qualcosa che non andava, quella formula non rispetta gli anni giusti, te la riporto così mi dici, cortesemente dove è che sbaglio, perchè sicuramente sbaglio, DATEDIFF( 'yy', "natoil", NOW( ) ) questo è quello che scrivo e se nel campo "natoil" metto 28/05/1957 mi da giustamente 66 anni, se metto 27/05/1957 mi da giustamente 66 anni e se metto 29/05/1957 ingiustamente sempre 66 anni mi da, non me ne dovrebbe dare invece 65? Mi indichi, per favore, dove commetto errore di sbaglio :( ? Grazie.
Giuseppe.
LibreOffice 7.5.2 su windows 10
giuseppe57
Messaggi: 58
Iscritto il: mercoledì 12 aprile 2023, 9:00

Re: Calcolo anni di vita

Messaggio da giuseppe57 »

Facendo varie prove ho notato che dall'01/01/57 al 31/12/57 da sempre 66 anni quindi penso faccia il calcolo solo sull'anno e non su tutta la data intera, giorno mese anno. che si fa??? Boohhh. Deduzioni mie, non so se esatte.
LibreOffice 7.5.2 su windows 10
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8785
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Calcolo anni di vita

Messaggio da charlie »

Deduzione esatta, bisogna cercare un altro sistema ... :roll: :roll: :roll:
charlie
macOS 14.3 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8785
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Calcolo anni di vita

Messaggio da charlie »

Bisogna cambiare approccio:

Codice: Seleziona tutto

SELECT *, "DataNascita", YEAR( CURRENT_DATE ) - YEAR( "DataNascita" ) - CASEWHEN( RIGHT( CURRENT_DATE, 5 ) < RIGHT( "dataNascita", 5 ), 1, 0 ) AS "Anni" FROM "NomeTabella"
Dove CURRENT_DATE equivale a NOW(), fa la stessa cosa;
CASEWHEN confronta i mesi delle date e toglie 1 anno se il mese della data odierna è minore del mese della data di nascita.

EDIT: oppure

Codice: Seleziona tutto

SELECT "ID", "Nascita", YEAR( CURRENT_DATE ) - YEAR( "Nascita" ) - CASEWHEN( MONTH( CURRENT_DATE) < MONTH( "Nascita"), 1, 0 ) AS "Anni" FROM "Tabella1"
charlie
macOS 14.3 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
giuseppe57
Messaggi: 58
Iscritto il: mercoledì 12 aprile 2023, 9:00

Re: Calcolo anni di vita

Messaggio da giuseppe57 »

Buon giorno Charlie, grazie per le risposte. Puoi vedere, per favore, se ho scritto bene la sintassi per adattare il codice di sopra al mio database? SELECT *, "natoil", YEAR( CURRENT_DATE ) - YEAR( "natoil" ) - CASEWHEN( RIGHT( CURRENT_DATE, 5 ) < RIGHT( "natoil", 5 ), 1, 0 ) AS "Anni" FROM "TAnag" solo non riesco a capire "Anni" a quale campo si riferisce e come devo modificarlo e infine, sempre per cortesia, mi dici in quale tipo di campo vado a scrivere il codice? Grazie per la pazienza.
Saluti Giuseppe
LibreOffice 7.5.2 su windows 10
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8785
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Calcolo anni di vita

Messaggio da charlie »

Ciao, sei in una query:
  • o la apri con Crea ricerca in vista sql e copi/incolli tutto il codice che hai scritto
  • o la apri con Crea ricerca in vista struttura e fai tutto graficamente
    Schermata 2023-05-29 alle 15.10.23.png
    Schermata 2023-05-29 alle 15.10.23.png (22.55 KiB) Visto 1002 volte
charlie
macOS 14.3 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
giuseppe57
Messaggi: 58
Iscritto il: mercoledì 12 aprile 2023, 9:00

Re: Calcolo anni di vita

Messaggio da giuseppe57 »

Perfetto Charlie, manco a dirlo, perfetto :super: , non che avessi dubbi :D . Ecco vedi, è questo che vorrei imparare a fare io, cioè a scrivere formule nelle query, come nell'esempio che mi hai mandato tu, come posso fare, indirizzami per favore, se c'è un videocorso da seguire su you tube o un manuale da leggere, indirizzato a gente cruda come me però, altrimenti mi perdo fra le varie terminologie tecniche. Quell'altro modo da seguire per arrivare allo stesso risultato, non l'ho capito, non ho capito dove andare a scrivere , con SELECT per intenderci, la riga di comando, in quale posizione , nella struttura del campo, ma non fa niente, mi piacerebbe ma, per ora non fa niente. Aspettando indicazioni su dove andare per acquisire, una basilare infarinatura su come e cosa scrivere nelle query per raggiungere risultati soddisfacenti nei vari calcoli di date, nuemeri, confronti fra campi e altro, ti ringrazio di cuore e amichevolmente ti saluto.
Giuseppe
LibreOffice 7.5.2 su windows 10
giuseppe57
Messaggi: 58
Iscritto il: mercoledì 12 aprile 2023, 9:00

Re: Calcolo anni di vita

Messaggio da giuseppe57 »

Scusa, stavo pensando, perchè non apri un tuo canale su you tube e metti a disposizione le tue conoscenze con dei videocorsi, penso che saresti molto seguito, o esiste già una cosa del genere ed io non me ne sono mai accorto? Saluti
Giuseppe
LibreOffice 7.5.2 su windows 10
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8785
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Calcolo anni di vita

Messaggio da charlie »

giuseppe57 ha scritto: mercoledì 31 maggio 2023, 8:46 Quell'altro modo da seguire per arrivare allo stesso risultato, non l'ho capito, non ho capito dove andare a scrivere , con SELECT per intenderci, la riga di comando, in quale posizione , nella struttura del campo, ...
charlie ha scritto: lunedì 29 maggio 2023, 15:15 ... la apri con Crea ricerca in vista sql ....
giuseppe57 ha scritto: mercoledì 31 maggio 2023, 8:46 indirizzami per favore, se c'è un videocorso da seguire su you tube o un manuale da leggere,
Tutto quello che conosco, l'ho imparato su questo forum provando a rispondere alle domande degli altri utenti dopo aver fatto delle prove personali. Poi consultando i forum paralleli in inglese e francese (grazie a google translate!) e i manuali rintracciabili sui siti ufficiali di OpenOfficee libreOffice.
giuseppe57 ha scritto: mercoledì 31 maggio 2023, 9:10 ... perchè non apri un tuo canale su you tube ...
No grazie, ce ne sono già troppi !
charlie
macOS 14.3 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
giuseppe57
Messaggi: 58
Iscritto il: mercoledì 12 aprile 2023, 9:00

Re: Calcolo anni di vita

Messaggio da giuseppe57 »

Ok Charlie grazie di tutto per adesso, un arriscriverci e un riconoscente saluto.
Giuseppe
LibreOffice 7.5.2 su windows 10
Rispondi