Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    Altra query, nuovo problema...

    Ciao ragazzi,
    sto ancora alle prese con un pò di report peril programma che sto realizzando, ed adesso mi trovo di fronte un problema che cercherò di spiegarvi meglio che posso.
    Ho una query realizzata tramite access attuata su 5 tabelle, ognuna della queli ha la chiave primaria collegata alla tabella successiva.
    La query che ottengo è la seguente:

    sql2 = "SELECT tab_categorie.nome_categoria, tab_categorie.descrizione_categoria, tab_fatture.importo_ft, tab_pagamenti.importo_pagamento, tab_categorie.ID_categorie, tab_fatture.conto_anticipo, tab_pagamenti.importo_pagamento_anticipo FROM (tab_categorie INNER JOIN (tab_voci INNER JOIN (tab_ordini INNER JOIN tab_fatture ON tab_ordini.ID_ordini = tab_fatture.id_ordine) ON tab_voci.ID_voci = tab_ordini.id_voce) ON tab_categorie.ID_categorie = tab_voci.id_categoria) LEFT JOIN tab_pagamenti ON tab_fatture.ID_fatture = tab_pagamenti.id_fattura WHERE (((tab_categorie.ID_categorie)="&categoria&"))"

    il problema è questo:
    Il risultato che ottengo mi restituisce:

    C |500,00
    C |250,00
    C |350,00
    D |153,00
    D |160,00

    Se volessi mostrare una riga soltanto per ogni categoria(A, B, C, D) e come importo la somma di ogni valore per quella categoria, come potrei fare?
    Spero di essermi spiegato bene, in pratica il risutlato dovrebbe essere questo:

    C | 1100,00
    D | 313,00

    Come posso modificare la query?
    Grazie a tutti!

  2. #2

    Re: Altra query, nuovo problema...

    Originariamente inviato da zetaweb
    Ciao ragazzi,
    sto ancora alle prese con un pò di report peril programma che sto realizzando, ed adesso mi trovo di fronte un problema che cercherò di spiegarvi meglio che posso.
    Ho una query realizzata tramite access attuata su 5 tabelle, ognuna della queli ha la chiave primaria collegata alla tabella successiva.
    La query che ottengo è la seguente:

    sql2 = "SELECT tab_categorie.nome_categoria, tab_categorie.descrizione_categoria, tab_fatture.importo_ft, tab_pagamenti.importo_pagamento, tab_categorie.ID_categorie, tab_fatture.conto_anticipo, tab_pagamenti.importo_pagamento_anticipo FROM (tab_categorie INNER JOIN (tab_voci INNER JOIN (tab_ordini INNER JOIN tab_fatture ON tab_ordini.ID_ordini = tab_fatture.id_ordine) ON tab_voci.ID_voci = tab_ordini.id_voce) ON tab_categorie.ID_categorie = tab_voci.id_categoria) LEFT JOIN tab_pagamenti ON tab_fatture.ID_fatture = tab_pagamenti.id_fattura WHERE (((tab_categorie.ID_categorie)="&categoria&"))"

    il problema è questo:
    Il risultato che ottengo mi restituisce:

    C |500,00
    C |250,00
    C |350,00
    D |153,00
    D |160,00

    Se volessi mostrare una riga soltanto per ogni categoria(A, B, C, D) e come importo la somma di ogni valore per quella categoria, come potrei fare?
    Spero di essermi spiegato bene, in pratica il risutlato dovrebbe essere questo:

    C | 1100,00
    D | 313,00

    Come posso modificare la query?
    Grazie a tutti!

    sarebbe da fare un "select sum(campo) as tot, categoria from tabella group by categoria"...vedi di adattarla a quel serprente di join che hai postato

  3. #3
    e lo so che è un'impresa... ci sto provando ma non riesco a trovare la soluzione alla sintassi giusta...
    La query l'ho creata da access, forse posso utilizzare access per impostare questi criteri aggiuntivi: come imposto queste condizioni in access?
    Altrimenti non saprei proprio come fare...

  4. #4
    prima del "from tabella" hai un elenco di campi...i campi di cui vuoi il tot li metti alla sum e poi alla fine fai un group by per tutti quelli che non sono nella sum


    edit: oppure ti fai un'altra query direttamente in access con i dati del serpentone, e su questa query fai la query di sum

  5. #5
    forse ci sono riuscito...
    ho fatto tutte le SUM per i campi che mi servivano, ed alla fine ho raggruppato...
    in Access sembra funzionare, mò devo vedere un pò come va con la visualizzazione.
    Grazie mille!

  6. #6
    Ragazzi ho ancora un problema che mi sta facendo uscire pazzo!!!!!!!
    La query creata ha un piccolo errore, che però non riesco assolutamente a capire da cosa dipende:

    SELECT tab_categorie.nome_categoria, tab_categorie.descrizione_categoria, Sum(tab_fatture.importo_ft) AS somma, Sum(tab_fatture.conto_anticipo) AS SommaDiconto_anticipo, Sum(tab_pagamenti.importo_pagamento) AS SommaDiimporto_pagamento, Sum(tab_pagamenti.importo_pagamento_anticipo) AS SommaDiimporto_pagamento_anticipo
    FROM (tab_categorie INNER JOIN tab_voci ON tab_categorie.ID_categorie = tab_voci.id_categoria) INNER JOIN (tab_ordini INNER JOIN (tab_fatture LEFT JOIN tab_pagamenti ON tab_fatture.ID_fatture = tab_pagamenti.id_fattura) ON tab_ordini.ID_ordini = tab_fatture.id_ordine) ON tab_voci.ID_voci = tab_ordini.id_voce
    GROUP BY tab_categorie.nome_categoria, tab_categorie.descrizione_categoria;


    In breve ho fatto le SUM per i campi che mi interessano e va tutto bene tranne che per il campo tab_fatture.importo_ft, il quale raddoppia il suo valore.
    Mi spiego meglio.
    La tabella tab_fatture ha UN record per una fattura di importo 12.000.
    La tabella tab_pagamenti ha DUE record collegati a questa fattura, ognuno di 6.000.

    Nella visualizzazione della query ottengo per la colonna SUM della tab_fatture il valore 24.000!!! Mentre, correttamente per quella SUM della tab_pagamenti ottengo 12.000.

    Come mai mi raddoppia il valore che dovrei avere?!?
    Ragazzi lo so che è complicato ma vi prego di aiutarmi...sto impazzendo!
    Grazie

  7. #7
    ragazzi mi servirebbe davvero una mano.
    Nessuno riesce ad aiutarmi?

  8. #8
    Senti fai una cosa, creati nel db una Query(access) o una Vista(mysql) con la query senza i sum e i group...quindi ti fai poi la sum con i group by su questa nuova query/vista che hai creato, almeno eventuali problemi ti dovrebbero essere + facili da visualizzare

  9. #9
    Ciao Santino,
    grazie per la risposta, ma purtruppo il procedimento che mi hai detto di fare è esattamente quello con il quale sono arrivato a questa query.
    Ho creato la query in access.
    Quindi ho aggiunto i SUM per ogni colonna di cui mi interessa avere la somma.
    Ma purtroppo mi esce questo valore raddoppiato per la colonna tab_fatture.importo_ft.......

    Nessun altro suggerimento?
    Grazie

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.