DSUM non mi funziona

di il
8 risposte

DSUM non mi funziona

Ho guardato ma non mi funziona: cosa sbaglio?

SELECT QueryVenditePerTitoloEAnno.ID, QueryVenditePerTitoloEAnno.Data, QueryVenditePerTitoloEAnno.Seriale, QueryVenditePerTitoloEAnno.NumeroCopieVendute, DSum("Nz([QueryVenditePerTitoloEAnno]![NumeroCopieVendute])","QueryVenditePerTitoloEAnno","seriale<=" & [seriale]) AS Saldo
FROM QueryVenditePerTitoloEAnno
GROUP BY QueryVenditePerTitoloEAnno.ID, QueryVenditePerTitoloEAnno.Data, QueryVenditePerTitoloEAnno.Seriale, QueryVenditePerTitoloEAnno.NumeroCopieVendute, DSum("Nz([QueryVenditePerTitoloEAnno]![NumeroCopieVendute])","QueryVenditePerTitoloEAnno","seriale<=" & [seriale])
ORDER BY QueryVenditePerTitoloEAnno.Data;

La parte che non mi funziona è quella in cui ho messo "seriale<=" & [seriale] se invece uso id va.
Seriale è un testo composto per esempio da AAAAMMDDHHMMSS dove A sta per anno, M mese D giorno H ora M minuti S secondi

Saldo: DSum("Nz([QueryVenditePerTitoloEAnno]![NumeroCopieVendute])";"QueryVenditePerTitoloEAnno";"seriale<=" & [seriale])

Aiutatemi vi prego
Grazie
Carlo

8 Risposte

  • Re: DSUM non mi funziona

    Togli il "vi prego" non siamo in chiesa...
    Se il campo è testo.... ci andrebbero gli apicetti... ma poi il confronto con <= perderebbe il senso....
    Se è un campo testo ma devi usarlo come data devi convertirlo in data.
  • Re: DSUM non mi funziona

    Ciao, grazie
    Volevo usarlo al posto dell id perché con la numerazione automatica nel caso di interim di una vendita datata poi il saldo calcolato dalla funzione non è corretto.
    Mi suggerisci di usare la data, ma come?
  • Re: DSUM non mi funziona

    Non ho minimamente capito che anomalia ti può dare l'uso di una PK Counter ma secondo me....

    Per il resto non ti ho detto di usare una data ti ho detto che se lo usi come testo lo devi formattare come tale ma chiaramente se poi hai necessità di fare operazioni su date, anche solo un Order By avresti problemi.
    Quindi devi valutare tu in base alle tue conoscenze ed esigenze.
    Io qualche perplessità, forse più di 1, c'è l'ho.....
  • Re: DSUM non mi funziona

    Ciao @Alex
    provo a spiegare meglio il mio problema

    ho bisogno di calcolare un saldo progressivo delle vendite.
    Ho un campo data, uno orario, uno copieVendute che è un numero.
    Usando id nell'espressione Saldo: DSum("Nz([QueryVenditePerTitoloEAnno]![NumeroCopieVendute])";"QueryVenditePerTitoloEAnno";"id <=" & [id]) mi funziona ma il problema è che le vendite non sono inserite progressivamente con la data quindi se ordino per data l'id non è ordinato e mi sballa il conto.

    Allora voglio usare data e ora modificando la funzione così
    Saldo: DSum("Nz([QueryVenditePerTitoloEAnno]![NumeroCopieVendute])";"QueryVenditePerTitoloEAnno";"Data <=" & [Data] and "Ora <= " & [Ora])

    Perché se la modifico così non va?
    Ciao e grazie
  • Re: DSUM non mi funziona

    Le vendite sono inserite per Data...?
    E se invece di usare il campo ID tu usassi il campo Data(ordinando per Data)...? Non credi che funzionerebbe bene...?
    Come immaginavo l'idea di formattarlo come Testo è sbagliatissima.
  • Re: DSUM non mi funziona

    Ciao,
    si le vendite sono inserite per data
    Mediante una query a seconda del titolo estraggo le vendite che mi interessano e questo ne è un esempio
    ID Data NumeroCopieVendute
    19 31/01/2016 1
    20 31/01/2016 1
    29 31/01/2016 1
    34 07/01/2016 10
    35 06/01/2016 4
    36 18/02/2016 10

    l'utente può inserire vendite avvenute in passato e vendite fatte lo stesso giorno poiché sono fatte in store differenti.
    Eventualmente posso anche inserire un orario per ciascuna vendita e quello permetterebbe di avere vendite fatte nello stesso giorno ma a orari diversi.

    Se uso ID nella DSUM fatta cosi
    Saldo: DSum("Nz([QueryVenditePerTitoloEAnno]![NumeroCopieVendute])";"QueryVenditePerTitoloEAnno";"id <= " & [id])
    Ottengo:
    Data NumeroCopieVendute Saldo
    31/01/2016 1 1
    31/01/2016 1 2
    31/01/2016 1 3
    07/01/2016 10 13
    06/01/2016 4 17
    18/02/2016 10 27

    Ho ottenuto il saldo progressivo ma quello che vorrei è ottenerlo in ordine di data cioè
    Data NumeroCopieVendute Saldo
    07/01/2016 10 10
    06/01/2016 4 14
    31/01/2016 1 15
    31/01/2016 1 16
    31/01/2016 1 17
    18/02/2016 10 27

    Ma non ci riesco.
    Ho provato a scrivere
    Saldo: DSum("Nz([QueryVenditePerTitoloEAnno]![NumeroCopieVendute])";"QueryVenditePerTitoloEAnno";"Data <= #" & [Data] & "#")
    e ottengo
    Data NumeroCopieVendute Saldo
    31/01/2016 1 17
    31/01/2016 1 17
    31/01/2016 1 17
    07/01/2016 10 27
    06/01/2016 4 27
    18/02/2016 10 27

    Cosa devo cambiare?
    Per la data e e l'ora ho visto che devo mette #

    Grazie per il tuo aiuto
    Carlo
  • Re: DSUM non mi funziona

    Vi sono incongruenze nella presentazione, in quanto:

    agente008 ha scritto:


    Ho ottenuto il saldo progressivo ma quello che vorrei è ottenerlo in ordine di data cioè
    Data NumeroCopieVendute Saldo
    07/01/2016 10 10
    06/01/2016 4 14
    31/01/2016 1 15
    31/01/2016 1 16
    31/01/2016 1 17
    18/02/2016 10 27
    per prima cosa non sono ordinati per data, inoltre, qualora si intenda di voler effettuare il saldo progressivo giornaliero, è sufficiente raggruppare i valori per data (con la clausola GROUP BY nella query).
  • Re: DSUM non mi funziona

    Scusa ho fatto un errore a scrivere la data del 6 e 7

    Se faccio Group by ottengo come sopra valori che non rappresentano il progressivo
Devi accedere o registrarti per scrivere nel forum
8 risposte