Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14

Discussione: Query di ragruppamento

  1. #1
    Utente di HTML.it
    Registrato dal
    May 2010
    Messaggi
    183

    Query di ragruppamento

    Un saluto x tutti,

    In una tabella access mi trovo la seguente struttura:


    id riga pos cat data Prezzo
    2315 9 50 13 28/01/2016 1,59
    2316 10 50 13 29/01/2016 13,25
    2317 12 50 13 31/01/2016 2,49
    2318 8 50 14 27/01/2016 9,38
    2319 9 50 14 28/01/2016 1,2
    2320 10 50 14 29/01/2016 8,18
    2321 11 50 14 30/01/2016 2,99
    2322 12 50 14 31/01/2016 1,99
    2323 6 50 16 25/01/2016 3,53
    2324 7 50 16 26/01/2016 0,55


    Non rieco in nessum modo a realizzare in VB6 una query la quale mi deve restituire la somma del campo prezzo ragruppando per riga e data. Premetto che le date sono in un range di 7 giorni del tipo:

    08/02/2016
    09/02/2016
    10/02/2016
    11/02/2016
    12/02/2016
    13/02/2016
    14/02/2016

    mentre il campo riga contiene solo numeri i quali possono essere anche ripetuti + volte. Faccio un esempio:

    Vorrei il totale del campo prezzo ragruppando per riga+data in questo prendendo in considerazione dal campo riga il n. 12 dovrei avere un solo record con totale di 15,24 assieme avrei bisogno anche del valore della riga in questo caso 12 ed il corispettivo della colonna pos.

    In definitiva dovrei avere un record cosi:

    Riga: 12
    Pos: 50
    Somma: 15,24


    Spero possiate aiutarmi che non so propio come fare.
    Ultima modifica di gn2010; 14-02-2016 a 18:09

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Non si è capito cosa devi ottenere.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Devi usare una funzione di aggregazione (es. Sum()) sui campi specifici che ti interessa raggruppare, mentre gli altri campi devono essere aggiunti nel comando GROUP BY:

    SQL GROUP BY Statement
    http://www.w3schools.com/sql/sql_groupby.asp

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2010
    Messaggi
    183
    L'avevo immaginato che non si avrebbe capito. Cerchero di spiegarlo in altro modo spero + comprenzibile:

    I dati prelevati dal db dove avevo postato uno stralcio sopra, vanno scritti in un file xls dove i campi del db [riga e pos] sono le posizioni di dove deve scrivere nel file xls.

    Quello che devo fare, che non riesco, e di avere il totale del [prezzo] ragruppato per [pos e data] ribadisco che le date sono quasi sempre in un range massimo di una settimana:

    08/02/2016
    09/02/2016
    10/02/2016
    11/02/2016
    12/02/2016
    13/02/2016
    14/02/2016

    Può capitare che alle volte manchi qualche giorno

    09/02/2016
    10/02/2016
    13/02/2016
    14/02/2016

    Mi servono ragruppati i dati in quanto ad esempio tutti i dati che dovranno ricadere nella pos Es. 50 li devo sommare per singolo giorno quindi ipotizzando che la settimana sia completa avrei la somma del campo [prezzo] di tutti i campi con valore 50 per singolo giorno.


    Mi fermo che non vorrei confondervi ulteriormente. Mi auguro che abbiamo fatto un piccolo passo avanti in chiarezza. Bho!!!!

  5. #5
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Quindi devi fare come ti ho già indicato.
    Hai controllato, prima di postare ?

  6. #6
    Utente di HTML.it
    Registrato dal
    May 2010
    Messaggi
    183
    Non va del tutto

    codice:
    Sql = "SELECT Sum(prezzo) AS xx,riga,pos From tabella1 GROUP BY data,riga,pos"

    I primi due sono esatti. Poi da risultati anomali

  7. #7
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    La query è corretta.
    Se i dati sono sbagliati allora potrebbe essere qualcosa che non va nei dati in entrata (definizione dei campi?)

    A me risulta corretto:

    codice:
    riga    pos    Prezzo    
    6       50     3,53    
    7       50     0,55    
    8       50     9,38    
    9       50     2,79    
    10      50     21,43    
    11      50     2,99    
    12      50     4,48


    Mostra i dati risultanti che ottieni dalla query.

  8. #8
    Utente di HTML.it
    Registrato dal
    May 2010
    Messaggi
    183
    Anche a me sembra strano. Stò verificando i dati. Quando finito vediamo se il problema erano i dati errati

  9. #9
    Utente di HTML.it
    Registrato dal
    May 2010
    Messaggi
    183
    Rieccomi.

    Fatta una verifica sembra che c'erano i dati scritti male nel db. Non vorrei dirlo ma adesso sembra andare come dovrebbe. Ovviamente, ho modificato la query aggiungendo il comando WHERE

    codice:
    Sql = "SELECT Sum(prezzo) AS xx,riga,pos From tabella1 WHERE status=1 GROUP BY data,riga,pos"

    Non so se sia corretto cosi oppure andrebbe usato HAVING al posto di WHERE

  10. #10

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.