Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    Problema creazione query "compensativa"..

    Ciao a tutti,
    ho un problema nella creazione di questa query.

    Ho un db con 2 tabelle
    -----------
    tab 1
    data
    peso_vero
    tipo
    idcliente
    riferimento

    tab 2
    data
    peso_stimato
    tipo
    idcliente
    riferimento

    -----------------
    Le 2 tabelle hanno in comune il campo numerico (riferimento) che

    per come era stato costruito a suo tempo l'applicativo questo campo consente di avere

    1 record nella tab1 e molti nella tab 2 con lo stesso rif
    oppure
    molti record nella tab 2 e 1 nella tab 1 con lo stesso rif

    -----------------
    Ora io vorrei creare una query che mi estrae la somma del totale peso_vero dalla tab 1 raggruppata per tipo e cliente

    la chiamo: query1
    e la somma del peso dalla tab 2 sempre raggruppata per tipo e cliente
    al chiamo: query2

    '' ora viene il bello '''
    quello che devo fare e' compensare nella tab 2 il totale dei valori ricevuti dalla query1 che hanno lo stesso riferimento in modo da poter confrontare il risultato e inserendo alla fine un record ( nella sola tab2) con la somma che manca
    in caso di eccedenza e stessa cosa nel caso in cui devo togliere ( poi ci penso in questo caso......)
    come posso gestire il tutto??

    Grazie
    Ciao

  2. #2
    metti le tabelle in JON (LEFT JOIN se non sono uguali). ma se ci fai un esempio forse è meglio

  3. #3
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Non e' molto chiaro... dici di volere le somme raggruppate per tipo e cliente ma di dover confrontare i pesi in base a riferimento... spiegati meglio
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  4. #4

    Ciao

    Ciao grazie intanto per le risposte.
    Dunque in effetti non sono riuscito a spiegarmi molto bene, metto sotto una query che ho scritto dentro Access e che dovrebbe aiutare spero a capire quello che devo fare.

    In sostanza io ho 2 tabelle, in una (tab1) ci sono i valori giusti mentre nell'altra (tab2) ci sono quelli stimati
    Io devo aggiornare la tab2 con i valori giusti che ho dalla tab1

    Teoricamente devo fare in modo di conoscere i pesi della tab1 suddivisi per denom_rifiuto ,ricavare le varie differenze confrontando il risultato dei pesi della tab 2 e inserire il valore di compensazione nella tab2
    Il valore di compensazione positivo o negativo sarà un nuovo record che butto alla fine.
    ( poi vediamo come fare per tenere il valore in una variabile..)

    Uno scenario potrebbe essere
    plastica 2500 kg plastica 2485 agg 15
    ferro 600 kg ferro 500 agg 100
    Spero di essere stato un pochino piu chiaro
    Grazie per l'aiuto

    -------------------
    tab1
    citta ( solo per indicarmi l'unita operativa)
    pesoreale
    denom_rifiuto = ( contiene gli stessi dati di tab2.rif_Carico1)
    rif_carico ( valore che uso per legarmi con la tab2)

    tab2

    cod_rifiuto_carico ( contiene gli stesi dati di tab1.denom_rifiuto)
    rif_Carico1 ( valore che uso per legarmi con la tab1)
    cod_impianto_carico ( per questa prova inseriamo 32 )
    -------------------------------------------

    SELECT tab1.citta, Sum(tab1.pesoreale) AS sommapeso, tab1.denom_rifiuto, tab2.cod_rifiuto_carico, tab1.denom_rifiuto,sum(tab2.peso_carico) as sommacarico,tab2.cod_rifiuti_carico
    FROM tab1 LEFT JOIN tab2 ON tab1.rif_carico = tab2.rif_carico1
    WHERE (((tab2.cod_impianto_carico)=32))
    GROUP BY tab1.citta, tab1.denom_rifiuto, tab2.cod_rifiuto_carico, tab1.denom_rifiuto;


    ---------------------------------------------------

  5. #5
    1. se stai usando Access la vedo dura con una sola query, valuta di passare a sql server (express è gratis) così puoi sfruttare le sp
    2. da qualche parte devi segnarti che quel record lo hai già trattato (hai cioù già scritto la compensazione) altrimenti lo ritratti ogni volta

  6. #6
    Ciao,
    no già tutto gira sul sql server express, io ho solo pensato di utilizzare Access per capire la procedura.
    lo script di " compensazione" dovrà essere lanciato da una web page poi mi va bene se parte sql server

    Potresti farmi un esempio ?

    Ti ringrazio molto

    Ciao

  7. #7
    prima di spiegare la SP, mi dici come fai a riconoscere i record ancora da compensare?

  8. #8
    Ciao,
    nella tab2 ho un campo numerico "reg" se i record hanno valore 0 sono da trattare altrimenti assumono il valore 1 alla fine della procedura di compensazione

    Premesso che a monte di tutto ho una query dove filtro per data i record delle due tabelle da trattare

    Almeno spero...

    Grazie

  9. #9
    Ciao,
    ho scritto questa query che gira sul sql server, purtroppo non capisco perchè le somme non sono corrette ma vengono " moltiplicate" quanti sono i raggruppamenti.
    ----------------
    sql ="SELECT sum (formulari.pesoreale) as sommapeso,formulari.denom_rifiuto,formulari.rif_ca rico,sum (mov_carico.peso_carico)as sommadicarico from formulari
    left join mov_carico on formulari.rif_CARICO=mov_carico.rif_carico1 where idproduttore=32 group by formulari.denom_rifiuto,formulari.rif_carico"
    --------------------------
    Come posso fare?
    Grazie

    Ciao

  10. #10
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Vuol semplicemente dire che hai piu' record nella seconda tabella che hanno la chiave uguale alla quella della prima...
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

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.