Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    [RISOLTO][MySQL] Problemi group By

    Salve a tutti , ho questa query :

    codice:
    SELECT `ingresso_temp`.`id_macchina`,
                 `macchina`.`id_clienti`, 
                 `clienti`.`nome` as `nome_clienti`,
                 `macchina`.`seriale`,
                  count(ingresso_temp.id_macchina) as numero_macchine
    FROM `ingresso_temp`
    JOIN `macchina` ON `macchina`.`id`=`ingresso_temp`.`id_macchina`
    JOIN `clienti` ON `macchina`.`id_clienti`=`clienti`.`id`
    WHERE `ingresso_temp`.`macchina_presente` = 1
    AND `ingresso_temp`.`deleted_at` IS NULL
    GROUP BY `macchina`.`id_clienti`
    e questo errore :

    codice:
    Errore nella query (1055): Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'wms_capalle_locale.ingresso_temp.id_macchina' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
    se aggiungo nel group by `ingresso_temp`.`id_macchina` l'errore sparisce ma non è il risultato che mi aspetto perchè io voglio prendere tutte le macchine che sono in ingresso raggrupparle per cliente e contare quante sono
    Ultima modifica di pippuccio76; 24-01-2024 a 15:56

  2. #2
    il fatto è che concettualmente vuoi due cose diverse: da una parte vuoi l'elenco delle macchine del cliente, e dall'altra il totale delle macchine del cliente. quindi un risultato teorico sarebbe

    cli1 macch1 3
    cli1 macch2 3
    cli1 macch3 3
    cli2 macch4 2
    cli2 macch5 2

    non un gran che bello a vedersi

    è questo che vuoi ottenere?

  3. #3
    Quote Originariamente inviata da optime Visualizza il messaggio
    il fatto è che concettualmente vuoi due cose diverse: da una parte vuoi l'elenco delle macchine del cliente, e dall'altra il totale delle macchine del cliente. quindi un risultato teorico sarebbe

    cli1 macch1 3
    cli1 macch2 3
    cli1 macch3 3
    cli2 macch4 2
    cli2 macch5 2

    non un gran che bello a vedersi

    è questo che vuoi ottenere?
    Hai perfettamente ragione , sono io che sbaglio che mi viene naturale mettere nella select i valori delle join , mentre nelle select va messo solamente quello che vuoi ottenere :


    codice:
    
    SELECT `clienti`.`nome` as `nome_clienti`, count(ingresso_temp.id_macchina) as numero_macchine
    FROM `ingresso_temp`
    JOIN `macchina` ON `macchina`.`id`=`ingresso_temp`.`id_macchina`
    JOIN `clienti` ON `macchina`.`id_clienti`=`clienti`.`id`
    WHERE `ingresso_temp`.`macchina_presente` = 1
    AND `ingresso_temp`.`deleted_at` IS NULL
    GROUP BY `macchina`.`id_clienti`
    In questo modo ho cliente ->numero macchine

  4. #4

  5. #5
    Quote Originariamente inviata da optime Visualizza il messaggio
    quindi sei a posto?
    SI ho modificato il titolo del primo post aggiungendo [RISOLTO] ma non lo ha preso

  6. #6

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.