Pagina 2 di 5 primaprima 1 2 3 4 ... ultimoultimo
Visualizzazione dei risultati da 11 a 20 su 49

Hybrid View

  1. #1
    era per chiamarla in un altro modo di fatto non funziona però ...

    HO modificato così :

    codice:
    
    
    
    SELECT `conta_mat`.`magazzino`, `conta_mat`.`codice_materiale`, `conta_mat`.`numero_conta`, `conta_mat`.`unita_misura` ,sap_ricevuti.codice_materiale as codice_sap, `sap_ricevuti`.`valore_totale_sap`, `sap_ricevuti`.`valore_singolo_sap`, `sap_ricevuti`.`quantita_sap`
    from sap_dati_ricevuti sap_ricevuti 
    join `conta_materiale` `conta_mat`  ON `conta_mat`.`codice_materiale` = `sap_ricevuti`.`codice_materiale`
    LEFT JOIN(
    SELECT `conta`.`magazzino`, `conta`.`codice_materiale`, `conta`.`numero_conta`, `conta`.`unita_misura`, sum(conta.quantita) as quantita_totale, `sap`.`valore_totale_sap`, `sap`.`valore_singolo_sap`, `sap`.`quantita_sap`
    FROM `conta_materiale` `conta`
    JOIN (SELECT max(id) id, max(numero_conta) FROM conta_materiale GROUP BY magazzino, codice_materiale) conta_appoggio ON `conta`.`id`=`conta_appoggio`.`id`
    JOIN `sap_dati_ricevuti` `sap` ON `conta`.`codice_materiale` = `sap`.`codice_materiale`
    WHERE `conta`.`id_inventario` = '4'
    GROUP BY `conta`.`codice_materiale`, `conta`.`magazzino`, `conta`.`numero_conta`, `conta`.`unita_misura`,sap.valore_totale_sap ,sap.valore_singolo_sap ,sap.quantita_sap
    ) valori_conta on sap_ricevuti.codice_materiale=valori_conta.codice_materiale
    Ma ho 50 righe invece dovrei avere oltre 4000 righe delle tabella sap.dati_ricevuti con i valori della conta a null dove non ho corrispondenze

  2. #2
    se indenti bene la query vedi dove semplificare

  3. #3
    usa uno dei tanti sql formatter (o beautifier) che trovi on line

  4. #4
    Eccola formattata :

    codice:
    SELECT 
      `conta_mat`.`magazzino`, 
      `conta_mat`.`codice_materiale`, 
      `conta_mat`.`numero_conta`, 
      `conta_mat`.`unita_misura`, 
      sap_ricevuti.codice_materiale as codice_sap, 
      `sap_ricevuti`.`valore_totale_sap`, 
      `sap_ricevuti`.`valore_singolo_sap`, 
      `sap_ricevuti`.`quantita_sap` 
    from 
      sap_dati_ricevuti sap_ricevuti 
      join `conta_materiale` `conta_mat` ON `conta_mat`.`codice_materiale` = `sap_ricevuti`.`codice_materiale` 
      LEFT JOIN(
        SELECT 
          `conta`.`magazzino`, 
          `conta`.`codice_materiale`, 
          `conta`.`numero_conta`, 
          `conta`.`unita_misura`, 
          sum(conta.quantita) as quantita_totale, 
          `sap`.`valore_totale_sap`, 
          `sap`.`valore_singolo_sap`, 
          `sap`.`quantita_sap` 
        FROM 
          `conta_materiale` `conta` 
          JOIN (
            SELECT 
              max(id) id, 
              max(numero_conta) 
            FROM 
              conta_materiale 
            GROUP BY 
              magazzino, 
              codice_materiale
          ) conta_appoggio ON `conta`.`id` = `conta_appoggio`.`id` 
          JOIN `sap_dati_ricevuti` `sap` ON `conta`.`codice_materiale` = `sap`.`codice_materiale` 
        WHERE 
          `conta`.`id_inventario` = '4' 
        GROUP BY 
          `conta`.`codice_materiale`, 
          `conta`.`magazzino`, 
          `conta`.`numero_conta`, 
          `conta`.`unita_misura`, 
          sap.valore_totale_sap, 
          sap.valore_singolo_sap, 
          sap.quantita_sap
      ) valori_conta on sap_ricevuti.codice_materiale = valori_conta.codice_materiale
    Ma non riesco a capire come fare , le mie nozioni si fermano a query semplici , come ragionamento è prendimi tutti i valori dalla tabella sap_dati_ricevuti e metti nella stessa riga i valori che cengono fuori dalla query che mi hai passato ieri dove sono presenti lo stesso codeice_materiale , dove non presente mostrami i campi null , andrebbe tradotto

  5. #5
    vedo diverse JOIN, dovresti semplificare

  6. #6
    lo vedi che qui c'è una doppia join?

    from
    sap_dati_ricevuti sap_ricevuti
    join
    `conta_materiale``conta_mat` ON `conta_mat`.`codice_materiale`=`sap_ricevuti`.`codice_materiale`
    LEFT JOIN
    (

  7. #7
    ho moodificato cosi:

    codice:
    SELECT 
      `valori_conta`.`magazzino`, 
      `valori_conta`.`codice_materiale`, 
      `valori_conta`.`numero_conta`, 
      `valori_conta`.`unita_misura`, 
      sap_ricevuti.codice_materiale as codice_sap, 
      `sap_ricevuti`.`valore_totale_sap`, 
      `sap_ricevuti`.`valore_singolo_sap`, 
      `sap_ricevuti`.`quantita_sap` ,
    `sap_ricevuti`.`magazzino` 
    from 
      sap_dati_ricevuti sap_ricevuti 
      LEFT JOIN(
        SELECT 
          `conta`.`magazzino`, 
          `conta`.`codice_materiale`, 
          `conta`.`numero_conta`, 
          `conta`.`unita_misura`, 
          sum(conta.quantita) as quantita_totale, 
          `sap`.`valore_totale_sap`, 
          `sap`.`valore_singolo_sap`, 
          `sap`.`quantita_sap` 
        FROM 
          `conta_materiale` `conta` 
          JOIN (
            SELECT 
              max(id) id, 
              max(numero_conta) 
            FROM 
              conta_materiale 
            GROUP BY 
              magazzino, 
              codice_materiale
          ) conta_appoggio ON `conta`.`id` = `conta_appoggio`.`id` 
          JOIN `sap_dati_ricevuti` `sap` ON `conta`.`codice_materiale` = `sap`.`codice_materiale` 
        WHERE 
          `conta`.`id_inventario` = '4' 
        GROUP BY 
          `conta`.`codice_materiale`, 
          `conta`.`magazzino`, 
          `conta`.`numero_conta`, 
          `conta`.`unita_misura`, 
          sap.valore_totale_sap, 
          sap.valore_singolo_sap, 
          sap.quantita_sap
      ) valori_conta on sap_ricevuti.codice_materiale = valori_conta.codice_materiale
    ma ho perso il group by della tua query avendo 4162 righe contro le 4144 che dovrei avere

  8. #8
    anche qui mi pare che ci sia una join di troppo

    ) conta_appoggio ON `conta`.`id`=`conta_appoggio`.`id`
    JOIN`sap_dati_ricevuti``sap` ON `conta`.`codice_materiale`=`sap`.`codice_materiale`
    WHERE

  9. #9
    il concetto dovrebbe essere

    SELECT campiSAP FROM SAP LEFT JOIN (query senza SAP) on SAP.codicemateriale=querysenzaSAP.codicemateriale

  10. #10
    Quote Originariamente inviata da optime Visualizza il messaggio
    il concetto dovrebbe essere

    SELECT campiSAP FROM SAP LEFT JOIN (query senza SAP) on SAP.codicemateriale=querysenzaSAP.codicemateriale
    Ma il numero conta mi serve ...

    Quindi :
    codice:
    SELECT 
      `c1`.`magazzino`, 
      `c1`.`codice_materiale`, 
      `c1`.`numero_conta`, 
      `c1`.`unita_misura`, 
      s.codice_materiale as codice_sap, 
      `s`.`valore_totale_sap`, 
      `s`.`valore_singolo_sap`, 
      `s`.`quantita_sap`, 
      `s`.`magazzino` 
    from 
      sap_dati_ricevuti s
      JOIN(
        SELECT 
          c1.magazzino, 
          c1.codice_materiale, 
          c1.numero_conta, 
          c1.unita_misura, 
          sum(c1.quantita) as quantita_totale 
        FROM 
          conta_materiale c1 
          JOIN (
            SELECT 
              max(id) id, 
              max(numero_conta) 
            FROM 
              conta_materiale 
            GROUP BY 
              magazzino, 
              codice_materiale
          ) c2 ON c1.id = c2.id 
        WHERE 
          c1.id_inventario = '4' 
        GROUP BY 
          c1.codice_materiale, 
          c1.magazzino, 
          c1.numero_conta, 
          c1.unita_misura;
    ) valori_conta on sap_ricevuti.codice_materiale = valori_conta.codice_materiale

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.