Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2014
    Messaggi
    31

    select DISTINCT con LEFT JOIN (SQLite)

    Ciao, devo fare una select per ottenere la somma del campo2 della tabella2, l'anno del campo2, il campo3 raggruppati, cioè, come uscita in questo caso devo avere questo:

    nome_fiore - 30 - 2010 - rossa

    nome_fiore1 - 50 - 2010 - arancione

    ho fatto così ma in pratica non ottengo la somma:
    codice:
     String sql = "SELECT DISTINCT r.campo1, r.campo3 , c.campo1, SUM(c.campo02) FROM tabella 1 r  LEFT JOIN tabella2 c ON (r.campo1 = c.campo1) WHERE c.campo02>0 AND c.data LIKE '"+anno+"%'";



    tabella 1 r
    campo1 campo2 campo3
    nome_fiore rosa rossa
    nome_fiore margherita rossa
    nome_fiore1 pesca arancione
    nome_fiore1 ciliegia arancione


    tabella2 c
    campo1 campo2 campo02 data
    nome_fiore rosa 10 2010-10-10
    nome_fiore margherita 20 2010-11-11
    nome_fiore1 ciliegia 30 2010-11-11
    nome_fiore1 ciliegia 20 2010-11-11

  2. #2
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Per raggruppare si usa la clausola GROUP BY

    Esempio :
    SELECT ANNO, MESE, SUM(VENDITA) FROM TABELLA
    GROUP BY ANNO, MESE
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2014
    Messaggi
    31
    Avevo già provato così GROUPO BY campo1
    In quel caso ottenevo una somma strana, cioèad esempio invece di avere come somma 50 ,avevo 100, come se sommasse più volte lo stesso record....
    Hai qualche idea??Grazie

  4. #4
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    prova se funziona così
    codice:
    SELECT distinct r.campo1, r.campo3, c.campo1, (SELECT SUM(c.campo02)
    FROM tab2 c
    WHERE c.campo1 = r.campo1 AND c.campo02>0 AND c.data LIKE '2010%'
    group by c.campo1) as data_query
    FROM tab1 r inner join tab2 c on r.campo1 = c.campo1

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.