in
La comunità italiana dedicata a Sviluppatori e Architetti IT delle piattaforme Windows

query su tabella

Ultimo messaggio ricevuto il 13-12-2006 16.26 da MaxBo. 4 risposta(e).
Pagina 1 di 1 (5 elemento/i)
Ordina messaggi: Precedente Successivo
  • 06-12-2006 15.41

    • sally
    • Utente Top 500
    • Registrato il 06-12-2006
    • Messaggi 2

    query su tabella

    ciao a tutti, ho il seguente problema.

    date le due tabelle su access:

    tab1

    cod 80   cod 90     cod 00    area    ettari
    242          242         111       63874   6
    242          111         112      470084   47
    242         112         112     2022380   2022
    242         242         112     324104   32
    242         121         121    1298043   130
    242         122         122     274130   27
    242         112         222    118582   12
    242         242         243   1073219   107
    242        242          323      90191   9

     

    tab2

    cod 80      cod 90     cod 00   area          ettari
    221            112          112      712756     71
    242            112          112     836285     84
    242            242          112     819305     82
    323            323          112     5173541  517
    323            323          121     269499      27
    321            242          242     514271     51
    323            321          321    1044855   104
    242            242          323    1198019   120
    321            323          323    1297774   130

     

    devo ricavarmi la tabella:


    cod 00         cod 90           cod 80                area        ettari 
    111                242                 242                 63874      6  
    112                111                 242                470084      47  
    112                112                  221               712756      71 
    112                112                   242          21060090      2106
    112                242                   242             1143409      114
    112                323                  323              5173541      517  
    121                121                  242             1298043      130  
    121                323                  323               269499       27  
    122                122                  242                274130      27  
    222                112                  242                118582      12  
    242                242                  321                514271      51  
    243                242                   242              1073219      107  
    321                 321                  323            1044855      104 
    323                242                  242             1288210      129
    323                323                  321             1297774      130

    cioè quando tab1(cod00-cod90-c0d80)=tab2(cod00-cod90-c0d80) sommo area e ettari.

    Access però è un pò limitato e io non sono certo un'esperta di acccess.

    ho provato a fare :

    SELECT * INTO tab
    FROM [SELECT Tabella1.[cod 00],Tabella1.[cod 90],Tabella1.[cod 80] ,Tabella1.[area],Tabella1.[ettari],(Tabella1.[area]+Tabella2.[area]) as somma_area
     ,(Tabella1.[ettari]+Tabella2.[ettari]) as somma_ettari
    FROM Tabella1 Left outer  JOIN Tabella2 ON (Tabella1.[cod 00] = Tabella2.[cod 00]) AND (Tabella1.[cod 90] = Tabella2.[cod 90]) AND (Tabella1.[cod 80] = Tabella2.[cod 80])
    union

    SELECT Tabella2.[cod 00],Tabella2.[cod 90],Tabella2.[cod 80] ,Tabella2.[area],Tabella2.[ettari],(Tabella1.[area]+Tabella2.[area]) ,(Tabella1.[ettari]+Tabella2.[ettari])
    FROM Tabella2 Left outer  JOIN Tabella1 ON (Tabella1.[cod 00] = Tabella2.[cod 00]) AND (Tabella1.[cod 90] = Tabella2.[cod 90]) AND (Tabella1.[cod 80] = Tabella2.[cod 80])
    ];

    ma ottengo una cosa del genere:

    cod 00 cod 90 cod 80      area      ettari           somma area    somma ettari
    111        242       242      63874         6  
    112        111       242      470084     47  
    112        112       242      836285     84                21060090     2106
    112        112       242     2022380 2022               21060090      2106
    .....................etc

    o sono impedita io?

    grazie in anticipo ciao.

     

     

     

    • Log
  • 12-12-2006 14.04 In risposta a

    • MaxBo
    • Utente Top 150
    • Registrato il 13-10-2006
    • Messaggi 6

    Re: query su tabella

    ciao
    non sono un esperto di access ma l' sql lo conosco molto bene, l'istruzione che hai scritto in nessun caso fa ciò che vuoi ottenere, se ho capito bene vuoi un file risultante che sommi i dati dei due di partenza .
    la struttura che devi usare  è :
    insert into ....
    select sum(area), sum(ettari) from
    (
    (select cod00, cod80, cod90, area, ettari from tab1)
    union
    (select cod00, cod80, cod90, area, ettari from tab2)
    )
    group by cod00,cod80, cod90
    order by cod00,cod80, cod90

    l' idea della union è guista ma attenta che in caso di records uguali la union ne lascia uno solo
    per ovviare al problema bisogna fare una cosa piu complessa.
    ciao

    • Log
  • 12-12-2006 14.07 In risposta a

    • MaxBo
    • Utente Top 150
    • Registrato il 13-10-2006
    • Messaggi 6

    Re: query su tabella

    Scusa ho omesso i codici nella select dei sum
    select cod00, cod80, cod90, sum(.....

    riciao
    • Log
  • 13-12-2006 13.28 In risposta a

    • sally
    • Utente Top 500
    • Registrato il 06-12-2006
    • Messaggi 2

    Re: query su tabella

    ciao MaxBo, grazie per avermi risposto.

    in realtà mi sono espressa male:

    allora date le due tabelle:

    Tab1

    cod1  cod2   cod3    area

    1         2          3         10

    1         1          2        10

    2         1          2         10

    e Tab2

    cod1   cod2   cod3    area

    1            1         3       10

    1            1          2      20

    1            2           1      10

    devo ricavarmi la tabella:

    Tab

    cod1     cod 2     cod3    area

    1              2          3        10

    1             1           2         30

    2              1           2        10

    1              2           1         10

    cioè solo per i record di tab1 e tab 2  che hanno cod1=cod1 e cod2=cod2  e cod3=cod3 va sommata l'area.

    Se faccio la tua query  non ottengo questo risultato e mi dà errore sul join.

    ciao a presto.

     

     

     

     

    • Log
  • 13-12-2006 16.26 In risposta a

    • MaxBo
    • Utente Top 150
    • Registrato il 13-10-2006
    • Messaggi 6

    Re: query su tabella

    Ciao Sally
    Ho capito cosa vuoi fare, ma nell' istruzione che ti ho scritto non ci sono join che possano dare errore e l' opzione group by ...... fa si che venga totalizzato per i trè codici usati. Il problema forse è che access non supporta le select annidate, le parentesi non sono errate o casuali.
    (io uso DB2)
    ciao
    • Log
Pagina 1 di 1 (5 elemento/i)
Prelevato da http://www.devspy.com/forums/p/4356/5179.aspx
DevSpy.com 6.0 © 2001-2008 - Alcuni Diritti Riservati
Salvo diversa indicazione, tutti i contenuti sono pubblicati sotto licenza "Creative Commons Attribution-Share Alike 3.0"