query calcolo percentuale

Anonimo
2013-03-03T14:30:53+00:00

ciao a tutti,

ragazzi ho questo problema, ho una tabella che contiene i seguenti campi:

codice |offerta | numero|

0001   | AAA    |10        |

0001   |AAA     |20        |

0001   |AAA     |70        |

0001   |BBBB    |10        |

il mio biettivo è quello di avere una query che mi calcoli la percentuale per singolo record  ,quindi raggruppando codice e offerta e sommando il campo numero calcolo la percentuale per riga. La cosa che sto cercando di evitare e realizzare una query che mi faccia la somma e quindi mettere in relazione le query , ma vorrei realizzare o una sub query o una funzione che faccia il calcolo , avete un idea su come realizzare una cosa simile.

codice |offerta | numero| %

0001   | AAA    |10        |10%

0001   |AAA     |20        |20%

0001   |AAA     |70        |70%

0001   |BBBB    |10        |100%

Vi ringrazio in anticipo grazie 1000

Microsoft 365 e Office | Access | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

Risposta accettata dall'autore della domanda

Anonimo
2013-03-03T17:28:34+00:00

Caio Vito,

in aggiunta alla query di The Raw propongo una query che al posto di una subquery  utilizza una tabella derivata, nel caso ci fossero molti record risulta più veloce.


SELECT T1.Codice,T1.Offerta,T1.Numero,

       FormatPercent(T1.Numero/T2.SommaNumero) AS Percentuale

FROM   NomeTabella AS T1

   INNER JOIN

       (SELECT Codice,Offerta,Sum(Numero) AS SommaNUmero

        FROM NomeTabella

        GROUP BY Codice,Offerta

        ) AS T2 ON T1.Codice=T2.Codice AND T1.Offerta=T2.Offerta

WHERE T1.Numero<>0


Cambia NomeTabella con l'effettivo nome della tabella da te usato

Ciao

Giorgio Rancati

La risposta è stata utile?

1 persona ha trovato utile questa risposta.
0 commenti Nessun commento

1 risposta aggiuntiva

Ordina per: Più utili
  1. Anonimo
    2013-03-03T16:30:44+00:00

    SELECT t1.codice

    , t1.offerta

    , t1.numero

    , (select sum(numero)

    from Miatabella t2 where  t2.codice&t2.offerta=t1.codice&t1.offerta) AS somma

    , FormatPercent([t1].[numero]/(select sum(numero)

    from Miatabella t2 where  t2.codice&t2.offerta=t1.codice&t1.offerta)) AS Percentuale

    FROM MiaTabella AS t1;

    MiaTabella=Tua tabella di partenza

    La risposta è stata utile?

    0 commenti Nessun commento