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

    Select su 2 tabelle con Sum

    Salve,
    devo fare una query su un db con circa 20.000 nominativi su un db access.
    In una tabella ci sono i nominativi di tutte le persone, in un altra tutte le donazioni che hanno effettuato, con relative somme, e data di versamento.
    Devo tirare il totale versato (molti hanno effettuato piu donazioni) da ogni persona nell'anno 2006.

    Ho fatto una prima select in cui vengono fuori tutti i nominativi che hanno effettuato donazioni nell'anno 2006 (unendo le 2 tabelle col campo id donatore)
    e all'interno del ciclo di questa, faccio un'altra select in cui chiedo il SUM delle donazioni effettuate nel 2006 dall'id donatore che si sta ciclando

    quando provo su 2, 3, 4 mesi, funziona
    ma quando provo su 12 mesi va in timeout iis, e succede anche mettendo Server.ScriptTimeout = 500

    sicuramente ci sono modi piu veloci e che impiegano meno risorse per fare la stessa cosa

    sapreste aiutarmi?

    Grazie mille
    Mr. Fepreto Nirra
    (I've been the wild rover for many of years - Spent all my money on whiskey and beer)
    E' PROPRIO UN BEL LOCALINO, BOB!
    ... ma non è il bicchiere giusto ...

  2. #2
    puoi fare tutto con una JOIN, immagino...

  3. #3
    e con la join cosa dovrei dirgli?
    come lo metto il sum in mezzo?
    Mr. Fepreto Nirra
    (I've been the wild rover for many of years - Spent all my money on whiskey and beer)
    E' PROPRIO UN BEL LOCALINO, BOB!
    ... ma non è il bicchiere giusto ...

  4. #4
    la sum la metti sul campo da sommare...


    SELECT SUM(CAMPOx) FROM TABLE1 JOIN TABLE2 ON TABLE1.CAMPOy=TABLE2.CAMPOz

  5. #5
    Utente di HTML.it L'avatar di wallrider
    Registrato dal
    Apr 2003
    Messaggi
    2,755
    posti il testo della prima query?
    RIP Cicciobenzina 9/11/2010

    "Riseminaciceli, i ceci nell'orto"

  6. #6
    la prima è questa
    varsql = "Select Distinct(Anagrafica.Donatore), Anagrafica.Cognome, Anagrafica.Nome, Anagrafica.Indirizzo, Anagrafica.Cap, Anagrafica.Comune, Anagrafica.[Codice Fiscale], Anagrafica.[Partita Iva], Donazioni.Donatore, Donazioni.[Data Vers] FROM Anagrafica, Donazioni WHERE Anagrafica.Donatore = Donazioni.Donatore AND Donazioni.[Data Vers] BETWEEN #1/1/2006# AND #9/1/2006# ORDER BY Anagrafica.Cognome, Anagrafica.Nome"


    quando cicla, al suo interno c'è questa
    var2 = "SELECT sum(Euro) as totale From Donazioni WHERE Donatore = " & rs.fields("donatore") & " AND [Data Vers] BETWEEN #1/1/2006# AND #31/12/2006#"
    Mr. Fepreto Nirra
    (I've been the wild rover for many of years - Spent all my money on whiskey and beer)
    E' PROPRIO UN BEL LOCALINO, BOB!
    ... ma non è il bicchiere giusto ...

  7. #7
    Originariamente inviato da ferola
    la prima è questa
    varsql = "Select Distinct(Anagrafica.Donatore), Anagrafica.Cognome, Anagrafica.Nome, Anagrafica.Indirizzo, Anagrafica.Cap, Anagrafica.Comune, Anagrafica.[Codice Fiscale], Anagrafica.[Partita Iva], Donazioni.Donatore, Donazioni.[Data Vers] FROM Anagrafica, Donazioni WHERE Anagrafica.Donatore = Donazioni.Donatore AND Donazioni.[Data Vers] BETWEEN #1/1/2006# AND #9/1/2006# ORDER BY Anagrafica.Cognome, Anagrafica.Nome"


    quando cicla, al suo interno c'è questa
    var2 = "SELECT sum(Euro) as totale From Donazioni WHERE Donatore = " & rs.fields("donatore") & " AND [Data Vers] BETWEEN #1/1/2006# AND #31/12/2006#"
    ...mettere la query tra i tag 'code' ed identare invoglierebbe alla lettura;

    comunque puoi provare a fare tutto con un'unica
    frase sql tipo questa (n.b non provata)

    codice:
    Select A.Cognome, A.Nome ,Q.* 
    from
    (
     select donatore , sum(Euro) as Totale
     from donazioni
     where [Data Vers] BETWEEN #1/1/2006# AND #9/1/2006#
     group by donatore
    ) as Q
    Inner join Anagrafica as A on Q.Donatore= A.Donatore
    Order by A.Cognome, A.Nome

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.