Somma Progressiva per Gruppi record

di il
3 risposte

Somma Progressiva per Gruppi record

Buongiorno a tutti, ho realizzato due tabelle in mysql strutturate come segue:
tabA
--id--gruppo--qt--progressivo
--1--a--10--10
--2--a--10--20
--3--b--5--5
--4--b--10--15
tabB
--id--gruppo--targetProgressivo
--1--a--20
--2--b--10
il mio obiettivo è ottenere i record per ogni gruppo fino al raggiungimento del targetProgressivo impostato nella tabB.
tabRisultato
--id--gruppo--qt--progressivo
--1--a--10--10
--2--a--10--20
--3--b--5--5
Inizialmente avevo valutato di usare una tabella dove scrivere il risultato della select per ogni gruppo con un comando

SELECT *, sum(qt) over(order by gruppo,id) as Progressivo FROM tabA 
ma ho due difficoltà: la prima è che non mi è stato possibile usare
 sum(qt) over(order by gruppo,id) as Progressivo
con il comando insert to; la seconda che non sono riuscito ad azzerare il progressivo con il cambio di gruppo.
Grazie per l'aiuto.

3 Risposte

  • Re: Somma Progressiva per Gruppi record

    Credo che questo faccia la caso tuo:
    https://www.markonetools.it/somma-progressiva
  • Re: Somma Progressiva per Gruppi record

    Grazie mille credo sia utile per risolvere il problema!
  • Re: Somma Progressiva per Gruppi record

    Partendo dal suggerimento di LeoFar ho ricavato:
    with RANKTBL as
    (select idtrade_Da_Chiudere, market, amount,
             row_number() over (partition by market	 order by idtrade_Da_Chiudere asc) as Numerazione
        from Temp_Posizione_da_Chiudere_Buy)
     
     select idtrade_Da_Chiudere,A.market, A.amount,
           (select sum(amount)
              from RANKTBL as B
              where B.market = A.market and B.Numerazione >= A.Numerazione) as Progressivo_Amount
       from RANKTBL as A
       where A.market in(market) 
       order by A.market, A.idtrade_Da_Chiudere desc;
       -- progressivo amount per market -- 
    Tornando alla mia esigenza: Posso usare un "insert to" per scrivere il risultato della query in una tabella? Non ci sono riuscito! o meglio, non riesco a scrivere la colonna Progressivo_Amount
    Grazie ancora per l'aiuto
Devi accedere o registrarti per scrivere nel forum
3 risposte