Pagina 2 di 4 primaprima 1 2 3 4 ultimoultimo
Visualizzazione dei risultati da 11 a 20 su 31
  1. #11

    cambiamento prezzi articoli

    Salve,

    Quello che temevi si è avverato.
    Se cambio prezzo di un articolo mi si stravolge tutto il credito della persona, perché mi ricalcola il tutto tramite il nuovo prezzo. Posso ovviare a questo problema creando un nuovo articolo ogni volta che cambio prezzo? Mi conviene o c'è un'altra soluzione?

    Per quanto riguarda la giacenza, avevo già provato a seguire la stessa logica, ma il problema che ho è che, tutto quello che scrivo prima della Sum, non mi viene considerato, mi dice testualmente: "impossibile eseguire una query che non include l'espressione (qualsiasi attributo che metto prima del Sum) specificata come parte di una funzione di aggregazione.
    Penso sia un banale errore di sintassi tu che ne dici?

  2. #12
    Utente di HTML.it L'avatar di nman
    Registrato dal
    Jan 2011
    residenza
    Milano
    Messaggi
    1,333

    Re: cambiamento prezzi articoli

    Originariamente inviato da mefisto_ax
    Quello che temevi si è avverato.
    Se cambio prezzo di un articolo mi si stravolge tutto il credito della persona, perché mi ricalcola il tutto tramite il nuovo prezzo. Posso ovviare a questo problema creando un nuovo articolo ogni volta che cambio prezzo? Mi conviene o c'è un'altra soluzione?
    Non è che lo temevo, ---- Ne ero certo!!!
    Ci sono varie soluzioni,
    La piu semplice è appunto creare un nuovo articolo ogni volta che cambi prezzo
    Un'altra è salvarti i totali in tabella ( come consigliato da Optime )
    -- ma in questo caso cambierebbe tutto


    Originariamente inviato da mefisto_ax
    Per quanto riguarda la giacenza, avevo già provato a seguire la stessa logica, ma il problema che ho è che, tutto quello che scrivo prima della Sum, non mi viene considerato, mi dice testualmente: "impossibile eseguire una query che non include l'espressione (qualsiasi attributo che metto prima del Sum) specificata come parte di una funzione di aggregazione.
    Penso sia un banale errore di sintassi tu che ne dici?
    Si è un errore di sintassi.

    se su una query raggruppata aggiungi
    per esempio il campo ARTIC.Xyz

    devi specificare che lo stesso deve essere raggruppato
    pertanto devi riscrivere lo stesso
    campo ( ARTIC.Xyz ) dopo la GROUP BY

    Guardati per esempio il campo ARTIC.Arti che ti ho messo io,
    è scritto in 2 punti

    .

  3. #13
    continuate pure a ricalcolare ogni volta invece di tenere saldo e giacenza

    auguri (i problemi non mancheranno)

  4. #14
    Utente di HTML.it L'avatar di nman
    Registrato dal
    Jan 2011
    residenza
    Milano
    Messaggi
    1,333
    Originariamente inviato da nman
    .....
    Un'altra è salvarti i totali in tabella ( come consigliato da Optime )
    -- ma in questo caso cambierebbe tutto
    ......
    Non è che io sono convinto che sia meglio ricalcolare ogni volta.
    Anzi mi sta venendo il dubbio che in questo caso la strada migliore sia effettivamente
    quella consigliata da Optime di salvare i totali aggiornati in tabella.

    Significherebbe che mefisto ha impiegato del tempo semplicemente
    per esercitarsi sulle modalita dei ricalcoli.

    ________________________________________________

    Mettiamoci pertanto nella mentalita di rifare tutto
    e risolviamo il 1° problema

    Ogni persona Compra/Vende qualcosa usando euro
    Ogni persona Guadagna 2,35 euro al giorno

    Nel primo caso è semplice, ad ogni transazione
    sulla tabella Movimenti si aggiorna il totale sulla tabella Persone

    Nel secondo caso è un po piu complicato, il DB potrebbe restare
    fermo il 14,15,16/Agosto e alla ripartenza sara necessario
    recuperare i giorni persi!!!


    Quindi sulla tabella Persone manterrei 2 campi
    per il credito residuo.
    CRM ( Credito residuo movimenti )
    ---- che si aggiorna ad ogni transazione della tabella Movimenti
    CRT ( Credito residuo Temporale )
    ---- che si aggiorna con ricalcolo ( e salvataggio in tabella ) ad ogni apertura del DB?? Oppure quando ???


    Ci ho messo un po di "fantasia" penso che a questo punto Mefisto
    ci puo dire come intende procedere


    .

  5. #15
    se il db può restare fermo, basta avere un log che indichi l'ultimo run del giro di aggiornamento. quindi il processo di aggiornamento girerà tante volte quanti sono i giorni che mancano dall'ultimo run (tipicamente ieri) a oggi

    that easy!

  6. #16

    credito residuo

    ciao,

    poniamo che io voglia aggiungere alla tabella persone i 2 campi consigliatomi, perché dovrei rifare tutto ? non basta dire che il valore della query che mi avete fatto fare devo memorizzarla nel campo credito residuo temporale?

  7. #17
    Utente di HTML.it L'avatar di nman
    Registrato dal
    Jan 2011
    residenza
    Milano
    Messaggi
    1,333

    Re: credito residuo

    Si, quella di "Rifare tutto" era un mio modo di dire esagerato

    Aggiungi quei 2 campi + un 3° direi
    DUA -- DataOra -- Dove registri la data dell'ultimo aggiornamento temporale per ogni persona


    poi proponici la struttura delle 3 tabelle e vediamo di preparare una query UPDATE che ti tiene aggiornati i totali

    .

  8. #18

    credito residuo

    Siamo arrivati qui:

    tabella PERSONE
    idP (contatore, KeyPrimaria)
    Nome (testo)
    DaIn (DataOra) La data di iscrizione della Persone
    credmov (valuta)
    Credtemp (valuta)
    datagg (dataOra) la data di aggiornamento movimenti)

    tabella ARTICOLI
    idA (contatore, KeyPrimaria)
    Arti (testo)
    Gia (numerico)
    Prez (valuta)

    tabella MOVIMENTI
    idM (contatore, KeyPrimaria)
    Quan (numerico)
    Casu (NotNull, Valori ammessi solamente "a" oppure "v" ( accuisto / Vendita))
    idAM (numerico, chiave esterna della tabella ARTICOLI.idA)
    idPM (numerico, chiave esterna della tabella PERSONE.idm)

    A questo punto non capisco un paio di cose: il credito risultante dalla query che mi hai consigliato è credmov?
    e poi il campo che mi hai fatto aggiungere come lo devo trattare?

  9. #19

    giacenza articoli

    scusate ancora,

    nman mi aveva consigliato una query per l'incremento/decremento della giacenza, in cui utilizzavo sia la funzione sum che la funzione nz. Purtroppo mi da lo stesso errore che mi dava quando non mettevo gli attributi fuori da sum, sotto group by, cioè, mi dice che è impossibile eseguire una query che non abbia nz ... come funzione di aggregazione. Devo mettere anche il risultato di nz (in questo caso GiaIstan) sotto group by o cosa ?

    Ragazzi grazie per il tempo che state perdendo dietro i miei problemi. Siete grandi!!!

  10. #20
    Utente di HTML.it L'avatar di nman
    Registrato dal
    Jan 2011
    residenza
    Milano
    Messaggi
    1,333
    Allora per aggiornare il "Creditemp" ( credito tempotale ) :
    Di ogni persona hai registrato la data dell'ultimo aggiornamento pertanto potresti aggiornare singolarmente il credito per ogni persona,
    ma diventa piu semplice se lo aggiormi massivamente ( noi lo facciamo massivamente )

    Scegli te quando aggiornare,
    - un timer ( NON alla mezzanotte )
    - l'apertura del programma
    - un qualunque movimento di qualunque persona

    codice:
    UPDATE PERSONE 
    SET 
    PERSONE.Creditemp = Nz([Creditemp],0)+(((Int(Now()))-(Int([datagg])))*2.35), 
    PERSONE.datagg = Int(Now())
    WHERE 
    (((PERSONE.datagg)<>Int(Now())))
    ;

    NB: Attenzione pero:
    Temo che se l'aggiornamento avviene negli istanti a cavallo della mezzanotte avremo dei problemi,
    Se lavori con Access devi "inventarti" una variabile che Nasca prima dell'inizio della query
    e poi rimane costante per tutta la query ( quanti sono i record ? ),
    Sostituisci il "Now()" con quella variabile


    Per il Credito Movimenti e la giacenza ....
    .

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 © 2026 vBulletin Solutions, Inc. All rights reserved.