Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 21
  1. #1

    Aiuto Per Calcolo Sulle Query Di Access

    salve volevo chiedere aiuto in merito ad un problema che alcune espressione nelle query, ho prelevato questa formula per effettuare un conteggio degli orari con relativa rstituzione del valore in ore, inserita in una query.

    ORE STRAORDINARIO RIDOTTE: CDate(CDate([alle])-CDate([dalle])-CDate([aliquota_oraria_ridotta]))

    Il calcolo finale invece di restituire 5,70, restituisce ore 6,20, fino qui tutto bene, ma se io volessi far conteggiare queste ore in funzione di un dato presente in un altro campo.

    Ad esempio, vorrei farmi restituire il conteggio delle ore in funzione di un dato presente nel campo chiamato turno. ad esempio se nel campo TURNO, c'è scritto FERIALE, vorrei che mi conteggiasse solo quelle ore in funzione della voce feriale.

    tabella: servizio
    campo: dalle
    campo: alle
    campo: aliquota_oraria
    campo: turno

    come si deve fare?

    e se volessi solo conteggiare le ore da un certo orario ad un altro, ad esempio ottenere il calcolo delle ore solo dalle 22:00 alle 06:00.

    GARZIE SIN DA ORA PER LA VOSTRA GENTILE E PROFESSIONALE COLLABORAZIONE.
    spetznatz

  2. #2
    spettinato, non ti basta aggiungere una condizione alla where?

  3. #3
    ad esempio, come si compila un'espressione completa e funzionale?

    grazie
    spetznatz

  4. #4
    Originariamente inviato da spetznatz
    ad esempio, come si compila un'espressione completa e funzionale?
    non ho capito la domanda

  5. #5

  6. #6
    GRAZIE DEI SPORADICI CONSIGLI, MA QUESTE PICCOLO NOZIONI LE CONOSCO GIA', IL PROBLEMA E' DIVERSO, IO DEVO COMUNICARE AD ACCESS TRAMITE UN'ESPRESSIONE IN UNA QUERY CHE DEVE CALCOLARMI SOLO IL CONTEGGIO DELLE ORE - TRA LE 22:00 E LE 06:00, SOLO QUESTO. Garzie ancora per la vostra preziosa collaborazione.
    spetznatz

  7. #7
    MA PERCHE' URLI?

    e comunque ti ho già risposto. aggiungi la condizione alla tua WHERE. se sei collaborativo e posti la query, ti si può anche dire come.


  8. #8
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Originariamente inviato da spetznatz
    GRAZIE DEI SPORADICI CONSIGLI, MA QUESTE PICCOLO NOZIONI LE CONOSCO GIA', IL PROBLEMA E' DIVERSO, IO DEVO COMUNICARE AD ACCESS TRAMITE UN'ESPRESSIONE IN UNA QUERY CHE DEVE CALCOLARMI SOLO IL CONTEGGIO DELLE ORE - TRA LE 22:00 E LE 06:00, SOLO QUESTO. Garzie ancora per la vostra preziosa collaborazione.
    Non so a chi tu stia rispondendo, ma visto che il mio post è l'ultimo prima del tuo penso che sia a me.
    Tu dici di conoscere già 'queste piccole nozioni', purtroppo il tuo codice:
    codice:
    CDate(CDate([alle])-CDate([dalle])-CDate([aliquota_oraria_ridotta]))
    sembra dimostrare l'esatto contraio.
    Il tuo calcolo sulle date è quanto di più sbagliato si possa fare perchè tratti le Date come fossero Numeri, che invece sono tutt'altra cosa. Infatti queste operazioni sono sbagliate:

    ?CDate("18:30:21") - CDate("16:30:21")
    restituisce: 8,33333333333333E-02

    ?CDate("22:00:00") - CDate("06:00:00")
    restituisce: 0,666666666666667

    ?CDate("06:00:00") - CDate("22:00:00")
    -0,666666666666667

    Inoltre, ricorda che le "date" sono un'entità unica che include sempre e comunque DATA e ORA. Una "date" (come comunemente noi la intendiamo) è in realtà un 'evento temporale unico'.
    Ad esempio, non esistono in assoluto le ore 22.00, ma le 22.30 del giorno dd/mm/yyyy.

    Che tu poi voglia prelevare da questa entità solo una parte dell'una o dell'altra è solo una questione di formattazione, ma il valore reale è sempre DATA e ORA.
    Ma eseguire calcoli sulle Date è una cosa un po' più complessa che farlo sui numeri.

    In un'interrogazione SQL bisogna anche fare i conti con il formato della data che dei database è di norma internamente definito nel formato americano:
    MM/DD/YYYY HH.NN.SS
    oppure MM al posto di NN per i minuti:
    MM/DD/YYYY HH.MM.SS

    a meno ché, non sia stato specificato un formato diverso (ma non tutti i database lo consentono) con i comandi previsti dal database.
    Ad esempio, in Access NON è possibile modificare il formato del tipo Data/Ora , per cui in un'interrogazione SQL lo sviluppatore dovrà aver cura di formattare la data nel formato sopra indicato, pena la non corrispondenza dei risultati (leggi: valori sballati).
    Non vado oltre perchè immagino conosca già queste problematiche.

    Non so che linguaggio stai utilizzando, non sappiamo qual'è la tua query (dato che non l'hai ancora mostrata) ma è certo che di norma è raccomandato l'uso di Command e Parametri che risolvono un bel po' di problemi a monte, oltre che semplificare la vita.

    Per darti meglio l'idea sui problemi nella gestione delle Date, puoi dare un'occhiata al mio articolo in cui tratto proprio ques'argomento in maniera abbastanza approfondita.

    ADO, Parametri ed affini
    http://nuke.vbcorner.net/Articoli/VB...5/Default.aspx

    Il progetto di esempio allegato all'articolo è in VB6, ma poco importa; è il concetto che è importante.


  9. #9
    Scusate, prima di tutto io non urlo mai, poi l'espressione che ho pubblicato, serve solo a restituire il valore delle ore corretto, ossia nei normali calcoli, se io ho lavorato 6 ore e 20 minuti il calcolo normale restituisce un valore di 5,80, con quell'espressione invece restituisce un valore di 6,20, cosi come deve essere ngli orari. Il problema è che non sono capace a realizzare un calcolo che mi effettui un conteggio solo nella fascia oraria dalle 22:00 ALLE 06:00; cHIARAMENTE se è necessario cambiare quell'espressione per ottenere il risultato di cui ho bisogno, ben venga, accetto qualsiasi consiglio da chi ne capisce più di me.
    grazie

    P.S. DOVE POSSO EVENTUALMENTE ALLEGARE LA TABELLA E LA QUERY ?
    spetznatz

  10. #10
    Originariamente inviato da spetznatz
    Scusate, prima di tutto io non urlo mai
    ...
    P.S. DOVE POSSO EVENTUALMENTE ALLEGARE LA TABELLA E LA QUERY ?
    questo non è urlare? non sai che scrivere tutto MAIUSCOLO vuol dire urlare?

    pubblica *qui* la strittura delle tabelle e la query

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.