Visualizzazione dei risultati da 1 a 10 su 10

Discussione: Raggruppare record

Hybrid View

  1. #1

    Raggruppare record

    Salve ho questo Dbfiddle :

    https://www.db-fiddle.com/f/8SoDX85zYKjrQMKUhdmrJ3/1

    Come posso raggruppare i dati correttamente ?

  2. #2
    • Ho modificato la query cosi :


    codice:
    select conta_materiale.id,conta_materiale.id_inventario,conta_materiale.numero_conta,inventario.nome as nome_inventario,fase_tipo_prodotto_finito.numero 
    from conta_materiale
    Join inventario on conta_materiale.id_inventario=inventario.id
    join fase_tipo_prodotto_finito on conta_materiale.id_fase_tipo_prodotto_finito =fase_tipo_prodotto_finito.id
    join tipo_prodotto_finito on fase_tipo_prodotto_finito.id_tipo_prodotto_finito
    group by conta_materiale.id,conta_materiale.id_inventario,conta_materiale.id_fase_tipo_prodotto_finito
    Ma se aggiungo nella select tipo_prodotto_finito.nome ho di nuovo il problema :

    Query Error:Error: ER_WRONG_FIELD_WITH_GROUP: Expression #6 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'test.tipo_prodotto_finito.nome' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by


    se metto nel group_by anche tipo_prodotto_finito.nome ho diversi id (uno per ogni tipo prodotto finito)
    Ultima modifica di pippuccio76; 24-12-2022 a 16:39

  3. #3
    Quote Originariamente inviata da pippuccio76 Visualizza il messaggio
    Salve ho questo Dbfiddle :

    https://www.db-fiddle.com/f/8SoDX85zYKjrQMKUhdmrJ3/1

    Come posso raggruppare i dati correttamente ?
    cosa intendi con "raggruppare i dati correttamente" ?

  4. #4
    Quote Originariamente inviata da optime Visualizza il messaggio
    cosa intendi con "raggruppare i dati correttamente" ?

    Ho risolto , mi mancava un valore nel group by :
    codice:
    select conta_materiale.id
         , conta_materiale.id_inventario
         , conta_materiale.numero_conta
         , inventario.nome as nome_inventario
         , fase_tipo_prodotto_finito.numero
         , tipo_prodotto_finito.nome
      from conta_materiale
      Join inventario
        on conta_materiale.id_inventario = inventario.id
      join fase_tipo_prodotto_finito
        on conta_materiale.id_fase_tipo_prodotto_finito = fase_tipo_prodotto_finito.id
      join tipo_prodotto_finito
        on fase_tipo_prodotto_finito.id_tipo_prodotto_finito = tipo_prodotto_finito.id
     group by conta_materiale.id
            , conta_materiale.id_inventario
            , conta_materiale.id_fase_tipo_prodotto_finito
            , tipo_prodotto_finito.nome
    ;

  5. #5
    curiosità personale: a cosa ti serve usare la GROUP BY() se poi nella SELECT non usi nessuna funzione di aggregazione (tipo COUNT(), SUM(), MIN(),...) ?

  6. #6
    Quote Originariamente inviata da optime Visualizza il messaggio
    curiosità personale: a cosa ti serve usare la GROUP BY() se poi nella SELECT non usi nessuna funzione di aggregazione (tipo COUNT(), SUM(), MIN(),...) ?
    Mi serve per mostrare le chiavi esterne nella query per datatable server side li mancano tutti i like%% e gli or likes

  7. #7
    allora forse ti basta una order by... usare Group By() senza aggregazioni serve solo a far lavorare di più il server

  8. #8
    Quote Originariamente inviata da optime Visualizza il messaggio
    allora forse ti basta una order by... usare Group By() senza aggregazioni serve solo a far lavorare di più il server
    Se non metto il group by ho molti record con lo stesso id

  9. #9
    Utente di HTML.it L'avatar di Joe Taras
    Registrato dal
    Nov 2003
    residenza
    Taranto
    Messaggi
    955
    Quote Originariamente inviata da pippuccio76 Visualizza il messaggio
    Se non metto il group by ho molti record con lo stesso id
    Secondo me devi riformulare la domanda, scrivendo esplicitamente quale risultato vuoi ottenere e postando anche la struttura delle tue tabelle.

    E' normale che a parità di id tu abbia più righe se non raggruppi, in quanto l'id di conta_materiale, per come è la JOIN potrebbe essere presente in più inventari. Ma se non espliciti bene l'obiettivo e la struttura del DB risulta difficile aiutarti

  10. #10
    Quote Originariamente inviata da Joe Taras Visualizza il messaggio
    Secondo me devi riformulare la domanda, scrivendo esplicitamente quale risultato vuoi ottenere e postando anche la struttura delle tue tabelle.

    E' normale che a parità di id tu abbia più righe se non raggruppi, in quanto l'id di conta_materiale, per come è la JOIN potrebbe essere presente in più inventari. Ma se non espliciti bene l'obiettivo e la struttura del DB risulta difficile aiutarti
    Ho già risolto qualche post sopra, poi la discussione e' continuata

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.