Pagina 5 di 5 primaprima ... 3 4 5
Visualizzazione dei risultati da 41 a 49 su 49

Hybrid View

  1. #1
    ah, quindi esistono più riche magazzino/articolo per la stessa conta... strano, ma vabbè

    allora non devi ricavare l'id dalla query più interna, ma max(numero_conta), magazzino e codice_materiale, e poi usare quelli per la JOIN

  2. #2

    [RISOLTO] [MYSQL] Valore conta massimo di un campo su valori raggruppati

    Quote Originariamente inviata da optime Visualizza il messaggio
    ah, quindi esistono più riche magazzino/articolo per la stessa conta... strano, ma vabbè

    allora non devi ricavare l'id dalla query più interna, ma max(numero_conta), magazzino e codice_materiale, e poi usare quelli per la JOIN
    Fatta!!!! :

    codice:
    
    SELECT 
      `valori_conta`.`magazzino`, 
      `valori_conta`.`codice_materiale`, 
      `valori_conta`.`numero_conta`, 
      `s`.`unita_misura`, 
      s.codice_materiale as codice_sap, 
      `s`.`valore_totale_sap`, 
      `s`.`valore_singolo_sap`, 
      `s`.`quantita_sap`, 
      valori_conta.quantita_totale
    from 
      sap_dati_ricevuti s
      LEFT JOIN(
        SELECT 
          c1.magazzino, 
          c1.codice_materiale, 
          c1.numero_conta, 
          sum(c1.quantita) as quantita_totale 
        FROM 
          conta_materiale c1 
          JOIN (
            SELECT 
              max(numero_conta) as nc,
            magazzino,
            codice_materiale
            FROM 
              conta_materiale 
            GROUP BY 
              magazzino, 
              codice_materiale
          ) c2 ON c1.codice_materiale = c2.codice_materiale and c1.numero_conta = c2.nc
        WHERE 
          c1.id_inventario = '4' 
        GROUP BY 
          c1.codice_materiale, 
          c1.magazzino, 
          c1.numero_conta
    ) valori_conta on s.codice_materiale = valori_conta.codice_materiale And valori_conta.magazzino = s.magazzino
    Grazie mille per l'aiuto

  3. #3
    OPTIME!

    qui
    ) c2 ON c1.codice_materiale = c2.codice_materiale and c1.numero_conta= c2.nc

    metterei anche il codice magazzino

  4. #4
    Avendo questa corretta :

    codice:
    SELECT 
      `valori_conta`.`magazzino`, 
      `valori_conta`.`codice_materiale`, 
      `valori_conta`.`numero_conta`, 
      `s`.`unita_misura`, 
      `s`.`codice_materiale` as `codice_sap`, 
      `s`.`valore_totale_sap`, 
      `s`.`valore_singolo_sap`, 
      `s`.`quantita_sap`, 
      `s`.`magazzino` as `magazzino_sap`, 
      `valori_conta`.`quantita_totale`, 
      (
        `valori_conta`.`quantita_totale`
      ) * (`s`.`valore_singolo_sap`) as valore_record 
    FROM 
      `sap_dati_ricevuti` `s` 
      JOIN (
        SELECT 
          c1.magazzino, 
          c1.codice_materiale, 
          c1.numero_conta, 
          sum(c1.quantita) as quantita_totale 
        FROM 
          conta_materiale c1 
          JOIN (
            SELECT 
              max(numero_conta) as nc, 
              magazzino, 
              codice_materiale 
            FROM 
              conta_materiale 
            GROUP BY 
              magazzino, 
              codice_materiale
          ) c2 ON c1.codice_materiale = c2.codice_materiale 
          AND c1.numero_conta = c2.nc 
          AND c1.magazzino = c2.magazzino 
        WHERE 
          c1.id_inventario = 1 
        GROUP BY 
          c1.codice_materiale, 
          c1.magazzino, 
          c1.numero_conta
      ) valori_conta ON `s`.`codice_materiale` = `valori_conta`.`codice_materiale` 
      And `valori_conta`.`magazzino` = `s`.`magazzino`
    Volevo sommare i totali dividendo per unità di misura ed ho provato così :

    codice:
    SELECT 
      SUM(
        `valori_conta`.`quantita_totale`
      ) as somma_totale, 
      `s`.`unita_misura` 
    FROM 
      (
        SELECT 
          `valori_conta`.`magazzino`, 
          `valori_conta`.`codice_materiale`, 
          `valori_conta`.`numero_conta`, 
          `s`.`unita_misura`, 
          `s`.`codice_materiale` as `codice_sap`, 
          `s`.`valore_totale_sap`, 
          `s`.`valore_singolo_sap`, 
          `s`.`quantita_sap`, 
          `s`.`magazzino` as `magazzino_sap`, 
          `valori_conta`.`quantita_totale` 
        FROM 
          `sap_dati_ricevuti` `s` 
          JOIN (
            SELECT 
              c1.magazzino, 
              c1.codice_materiale, 
              c1.numero_conta, 
              sum(c1.quantita) as quantita_totale 
            FROM 
              conta_materiale c1 
              JOIN (
                SELECT 
                  max(numero_conta) as nc, 
                  magazzino, 
                  codice_materiale 
                FROM 
                  conta_materiale 
                GROUP BY 
                  magazzino, 
                  codice_materiale
              ) c2 ON c1.codice_materiale = c2.codice_materiale 
              AND c1.numero_conta = c2.nc 
              AND c1.magazzino = c2.magazzino 
            WHERE 
              c1.id_inventario = 1 
            GROUP BY 
              c1.codice_materiale, 
              c1.magazzino, 
              c1.numero_conta
          ) valori_conta ON `s`.`codice_materiale` = `valori_conta`.`codice_materiale` 
          And `valori_conta`.`magazzino` = `s`.`magazzino`
      ) 
    Group BY 
      `s`.`unita_misura`
    Ma non funziona perchè ?

  5. #5
    che vuol dire "non funziona"?

  6. #6
    Quote Originariamente inviata da optime Visualizza il messaggio
    che vuol dire "non funziona"?

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

  7. #7
    pippo, spiegati sennò non so come aiutarti

  8. #8
    Quote Originariamente inviata da optime Visualizza il messaggio
    pippo, spiegati sennò non so come aiutarti

    Scusa ho postato il fiddle sbagliato :

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


    Query Error: Error: ER_DERIVED_MUST_HAVE_ALIAS: Every derived table must have its own alias

  9. #9
    mancano delle tabelle già nella query interna. e comunque nella query esterna (quella con la SUM()) non devi far riferimento alle tabelle interne (ad esempio `s`)

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.