Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    306

    funzione SUM con LEFT JOIN

    Ho 3 tabelle 2 delle quali in relazione con la prima tramite un campo numero bolla; devo fare la somma del campo prezzo della tabella 2 + la somma del campo prezzo della tabella 3 e ho provato così:

    sql = "select sum(a.prezzo + r.prezzo) as importo from ((bolla as b "
    sql = sql & " left join articoli_bolla as a on a.numero_bolla = b.numero_bolla) "
    sql = sql & " left join ricambi_bolla as r on r.numero_bolla = b.numero_bolla) "

    Nella tabella 2 ci sono 4 record con numeri bolla 1, 2, 3, 4 e nella tabella 3 un record con numero bolla 1. La query mi restituisce solo la somma del numero bolla 1 tra le 2 tabella, escudendomi i prezzi dei numeri bolla 2, 3, 4 della tabella 2; con un response.write visualizza correttamente i 4 campi (di cui 3 nulli dovuto al left join) e vorrei evitare di utilizzare un variabile con un ciclo, esiste un metodo?

  2. #2
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    Ciao giannipie,
    non vengono effettuate somme tra numero e null
    devi trasfomare i null in 0
    se usi MS SQL Server
    codice:
    sql = "select sum(isNull(a.prezzo,0) + isNull(r.prezzo,0)) as importo from ((bolla as b "
    sql = sql & " left join articoli_bolla as a on a.numero_bolla = b.numero_bolla) "
    sql = sql & " left join ricambi_bolla as r on r.numero_bolla = b.numero_bolla) "
    nel tuo caso basterebbe usare isNull solo per r.prezzo ma usarlo anche per a.prezzo non fa male

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    306
    ho il seguente errore, da premettere che sto provando in access...:

    [Microsoft][Driver ODBC Microsoft Access] Numero errato di argomenti usati con la funzione nell'espressione della query 'sum(isNull(a.prezzo,0) + isNull(r.prezzo,0))'.
    ...e un possibile problema: se su ogni bolla ci sono caricati un articolo_bolla e 2 o più ricambi_bolla, la somma potrebe uscire sballata, nel senso che verrebbe ripetuto l'articolo_bolla per ogni ricambio_bolla inserito. Se poi ce ne sono 2 o più in entrambe le cartelle con lo stesso numero bolla, sarebbe ancora peggio? se fosse così è meglio impostare il tutto diversamete o c'è soluzione?

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 © 2026 vBulletin Solutions, Inc. All rights reserved.