[Risolto] Query mod. struttura-Operazione fra campi orario

Discussioni sulle caratteristiche di database
Rispondi
Luca Luca 1963
Messaggi: 31
Iscritto il: domenica 17 gennaio 2016, 14:35

[Risolto] Query mod. struttura-Operazione fra campi orario

Messaggio da Luca Luca 1963 »

Ciao a tutti
volevo sapere, in vista struttura di una query, come posso generare un campo che mi calcoli la differenza fra due campi orario.
Nel mio dbase ho due campi:
OraInizio (campo di tipo orario)
OraFine (campo di tipo orario)
vorrei creare una query con un campo calcolato di tipo orario dove mi restituisca la differenza fra OraFine e OraInizio.
Come impostare la query?
Grazie per l'aiuto
Ultima modifica di Luca Luca 1963 il giovedì 21 gennaio 2016, 21:39, modificato 1 volta in totale.
Opne Office 4.1 - Windows 8
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8807
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Query modalità struttura-Operazione fra campi orario

Messaggio da charlie »

Ciao, puoi usare la funzione

Codice: Seleziona tutto

DATEDIFF( 'ss', "OraInzio", "OraFine" )
dove 'ss' sta per secondi ('mi' per minuti, 'hh' per ore).
charlie
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
Luca Luca 1963
Messaggi: 31
Iscritto il: domenica 17 gennaio 2016, 14:35

Re: Query modalità struttura-Operazione fra campi orario

Messaggio da Luca Luca 1963 »

Grazie Chiarlie
vorrei chiederti anche un'altra delucidazione circa il Comando IIf.
Vorrei impostare un campo (sempre nella stessa query) dove succede questo:
SE IL TotOre>= 10 allora "NON PRENOTABILE" SE TotOre<10 allora "PRENOTABILE PER N. (differenza tra 10 e TotOre) ORE
Se puoi darmi un'aiuto te ne sono grato
Luca
Opne Office 4.1 - Windows 8
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8807
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Query modalità struttura-Operazione fra campi orario

Messaggio da charlie »

Problema:
TotOre >= 10 non funziona se TotOre è nel formato HH.MM.SS. Bisogna convertire in ore, oppure minuti, oppure secondi. Ma diventa un valore numerico, non è un orario.

Puoi usare la funzione CASE WHEN:

Codice: Seleziona tutto

CASE WHEN HOUR( "TotOre" ) >= 10  THEN 'NON PRENOTABILE'  ELSE 'PRENOTABILE PER ORE ' || (10 - HOUR("TotOre") ) END 
Edit: ma quello che segue ELSE fra apici (' ') deve essere una stringa e non è possibile inserire un calcolo.
charlie
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
Luca Luca 1963
Messaggi: 31
Iscritto il: domenica 17 gennaio 2016, 14:35

Re: Query modalità struttura-Operazione fra campi orario

Messaggio da Luca Luca 1963 »

Grazie Chiarlie
provo la tua soluzione
Luca
Opne Office 4.1 - Windows 8
Luca Luca 1963
Messaggi: 31
Iscritto il: domenica 17 gennaio 2016, 14:35

Re: Query modalità struttura-Operazione fra campi orario

Messaggio da Luca Luca 1963 »

Ciao Chiarlie
la query non funziona inserendo il codice da te suggerito
In allegato trovi la schermata di come ho impostato la query. gentilmente puoi darci una occhiata .... quando hai un attimo?
E' possibile che non faccio i passaggi giusti.
Scusa ma sono davvero molto "crudo" di programmazione sql
grazie
Luca
Allegati
Struttura query
Struttura query
Opne Office 4.1 - Windows 8
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8807
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Query modalità struttura-Operazione fra campi orario

Messaggio da charlie »

Io prove non ne avevo fatte, non avendo una versione aggiornata del file.
Credo che il problema sia l'uso del campo TotOre nella stessa query dove viene calcolato.
Puoi provare in due modi:
  1. Sostituisci a TotOre il suo calcolo (DATEDIFF( ….)
  2. Fai una query sulla query
charlie
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
Luca Luca 1963
Messaggi: 31
Iscritto il: domenica 17 gennaio 2016, 14:35

Re: Query modalità struttura-Operazione fra campi orario

Messaggio da Luca Luca 1963 »

Ciao Chiarlie
ho provato a fare una query della query, ma il risultato è sempre lo stesso.
Ti allego il Dbase.
A tale proposito volevo chiederti come si fa a rempistare il Dbase in modo che il record di partenza sia 0 perchè con tutte le prove che ho fatto asono arrivato ad un id=40
Ciao e grazie
Luca
Allegati
PRENOTAZIONE_AUTO_3.zip
dbase
(254.69 KiB) Scaricato 90 volte
Opne Office 4.1 - Windows 8
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8807
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Query modalità struttura-Operazione fra campi orario

Messaggio da charlie »

TotOre è già numerico, ti dà errore la funzione HOUR.
Cambia il codice in:

Codice: Seleziona tutto

CASE WHEN  "TotOre" >= 10  THEN 'NON PRENOTABILE'  ELSE 'PRENOTABILE PER ORE ' || 10 - "TotOre" END
charlie
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
Luca Luca 1963
Messaggi: 31
Iscritto il: domenica 17 gennaio 2016, 14:35

Re: Query modalità struttura-Operazione fra campi orario

Messaggio da Luca Luca 1963 »

funziona Chiarlie
e in merito all'altro quesito?
A tale proposito volevo chiederti come si fa a rempistare il Dbase in modo che il record di partenza sia 0 perchè con tutte le prove che ho fatto asono arrivato ad un id=40
grazie
Opne Office 4.1 - Windows 8
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8807
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Query modalità struttura-Operazione fra campi orario

Messaggio da charlie »

menu > Strumenti > SQL scrivi nella finestra Comando da eseguire (sostituendo i giusti nomi campo e tabella)

Codice: Seleziona tutto

ALTER TABLE "nomeTabella" ALTER COLUMN "nomeCampo ID" RESTART with 0
e premi Esegui
charlie
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
Luca Luca 1963
Messaggi: 31
Iscritto il: domenica 17 gennaio 2016, 14:35

Re: Query modalità struttura-Operazione fra campi orario

Messaggio da Luca Luca 1963 »

Grazie Chiarlie
sempre molto cortese e gentile, nonchè preparato
complimenti
Luca
Opne Office 4.1 - Windows 8
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8807
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Query modalità struttura-Operazione fra campi orario

Messaggio da charlie »

Prego. Risolto allora?
charlie
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
Luca Luca 1963
Messaggi: 31
Iscritto il: domenica 17 gennaio 2016, 14:35

Re: Query mod. struttura-Operazione fra campi orar

Messaggio da Luca Luca 1963 »

Scusa se non l'ho fatto prima
Grazia ancora

In merito all'azzeramento del campo ID, immagino che l'operazione si debba fare a tabella vuota
Opne Office 4.1 - Windows 8
Rispondi